繁体   English   中英

Membership.GetUser()在Mac的Visual Studio上始终返回NULL

[英]Membership.GetUser() always returns NULL on Visual Studio for Mac

我正在使用(VS 2019 Preview for Mac)ASP.NET MVC项目上工作,并且卡住了登录和注册。 当我调用Membership.GetUser(login)我总是得到NULL作为返回值。 Windows 7的 VM上,我可以获得用户信息(例如,密码),但是Membership.ValidateUser()甚至在VM上仍返回false

好。 我已经在Web.config和数据库中检查了applicationName属性。 他们是平等的。 我的Web.config

...
<membership defaultProvider="AspNetSqlMembershipProvider">
    <providers>
        <clear />
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="EntitiesModel" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="10" minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordFormat="Encrypted" applicationName="/" />
    </providers>
</membership>
...

在VS2019 for Mac输出中,在以下情况下出现此错误:

var pass = user.GetPassword();

错误是

System.ArgumentNullException:字符串引用未设置为String的实例。 参数名称:/ Users / builder / jenkins / workspace / build-package-osx-mono / 2018-10 / external / bockbuild / builds / mono中System.Text.Encoding.GetBytes(System.String s)[0x00003]处的s -x64 / mcs / class / referencesource / mscorlib / system / text / encoding.cs:1091,位于System.Web.Security.SqlMembershipProvider.EncodePassword(System.String密码,System.Web.Security.MembershipPasswordFormat密码格式,System.String salt) /Users/builder/jenkins/workspace/build-package-osx-mono/2018-10/external/bockbuild/builds/mono-x64/mcs/class/System.Web/System.Web.Security/SqlMembershipProvider中的[0x000ee] .cs:1066,位于/ Users / builder / jenkins / workspace / build-package-osx-mono / 2018-10 /中的System.Web.Security.SqlMembershipProvider.GetPassword(System.String用户名,System.String passwordAnswer)[0x00053]在/中的external / bockbuild / builds / mono-x64 / mcs / class / System.Web / System.Web.Security / SqlMembershipProvider.cs:545在System.Web.Security.MembershipUser.GetPassword(System.String passwordAnswer)[0x00000]用户/构建者/仁 kins / workspace / build-package-osx-mono / 2018-10 / external / bockbuild / builds / mono-x64 / mcs / class / System.Web.ApplicationServices / System.Web.Security / MembershipUser.cs:124在系统上。 / Users / builder / jenkins / workspace / build-package-osx-mono / 2018-10 / external / bockbuild / builds / mono-x64 / mcs / class / System中的Web.Security.MembershipUser.GetPassword()[0x00000]。 Web.ApplicationServices / System.Web.Security / MembershipUser.cs:位于BLL.Core.UserManager.LoginAndGetUser的119(System.String登录名,System.String密码,System.String&msg,System.StringcheckedRole)[0x00031]到我的项目] /BLL/Core/UserManager.cs:107,位于[路径的BLL.Core.UserManager.Login(System.String登录名,System.String密码,System.String&msg,System.StringcheckedRole)[0x0001c]我的项目] /BLL/Core/UserManager.cs:150

感谢Mono,ASP.NET MVC是在Mac上运行的基础结构。 这很可能已被弃用,因为服务器上的Mono从未具有良好的性能或兼容性(尤其是在用户管理方面),最好的选择是使用ASP.NET Core ,它在.NET Core上运行(对于Mac / Linux /赢得)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM