【问题标题】:Membership.ValidateUser always returns falseMembership.ValidateUser 总是返回 false
【发布时间】:2012-08-04 21:00:45
【问题描述】:

我正在努力设置默认会员资格。我可以注册,但后来我无法登录我的应用程序。 Membership.ValidateUser 总是返回 false。

这是我正在使用的配置:

<connectionStrings>
   <clear />
   <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=tcp:s09.winhost.com;Initial Catalog=*****;User ID=******;Password=**********;Integrated Security=False;" />
</connectionStrings> 

<profile defaultProvider="DefaultProfileProvider">
  <providers>
    <clear/>
    <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
  </providers>
</profile>
<membership defaultProvider="DefaultMembershipProvider"  hashAlgorithmType="SHA1">
  <providers>
    <clear/>
    <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/goaly" />
  </providers>
</membership>
<roleManager defaultProvider="DefaultRoleProvider">
  <providers>
    <clear/>
    <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
  </providers>
</roleManager>
<sessionState mode="InProc" customProvider="DefaultSessionProvider">
  <providers>
    <clear/>
    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
  </providers>
</sessionState>

<machineKey validationKey="2CE9C29E0CA905FA4CB11E7A20158566A1C7B0CFD9B94528B6758FB1B1588E2928B70F7D1EC2174CB1CB2C6AAB03F2D3848B502AEB46C60B7370A032FFDA716C" decryptionKey="6B0F32F19532E948C4431B9437A12F32BE56706DB3483205706ECCF2BDA7C167" validation="SHA1" decryption="AES" />

我已经看到了几个问题Why does Membership.ValidateUser() always return false?,但我已经尝试添加机器密钥和设置 hashalgoritm。

注册新用户时可以看到在dbo.Memberships表和dbo.User表中创建了一条新记录,但是无法登录。

一个可能的问题是缺少视图或存储过程,我没有创建任何这些,只是假设它们将被正确创建(用户、UsersInRolesm 角色、配置文件、成员资格表是自动创建的)

感谢您的帮助

拉西

【问题讨论】:

  • 您的连接字符串 = "*******" ?你只是把它藏起来了吗?您的连接字符串是否与此 &lt;connectionStrings&gt; &lt;add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/&gt; &lt;/connectionStrings&gt; 相似?
  • @WaqarJanjua 感谢您对此进行调查。我已经更新了有问题的连接字符串。有什么想法吗?

标签: asp.net-mvc asp.net-membership


【解决方案1】:

啊啊啊!!!

我找到了无法登录的原因。

在我的 accountcontroller(由 mvc 4 模板创建)行

 Membership.CreateUser(model.UserName, model.Password, model.Email, passwordQuestion: null, passwordAnswer: null, isApproved: true, providerUserKey: null, status: out createStatus);

改为

 Membership.CreateUser(model.UserName, model.Password, model.Email, passwordQuestion: null, passwordAnswer: null, isApproved: false, providerUserKey: null, status: out createStatus);

当我抓取最新的位时,它被设置为 true。不知道为什么它被设置为 false。

可能模板已更改,或者 IsApproved 功能已更改。无论如何它都不能正常工作。

拉西

【讨论】:

    【解决方案2】:

    其他可能的原因:

    1:密码错误

    2:用户被锁定

    3:用户未获批准

    4:还有什么????并且需要更多的调查。即它之前是否工作并停止工作?您是否对您的 memberhsip 提供商进行了任何其他更改,例如 passwordFormat 或其他内容....等等。

    来源:http://forums.asp.net/t/1392208.aspx

    【讨论】:

      猜你喜欢
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-20
      • 2021-11-05
      相关资源
      最近更新 更多