我正在设置默认会员资格。我可以注册,但后来我无法登录我的应用程序。 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角色,配置文件,成员资格表是自动创建的)
感谢您的帮助
Larsi
答案 0 :(得分:0)
Arghhhh !!!
我发现了为什么我无法登录。
在我的帐户控制器(由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。不知道为什么它被设置为假。
可能模板已更改,或者IsApproved功能可能已更改。无论如何它没有用。
Larsi
答案 1 :(得分:0)
其他可能的原因:
1:密码错误
2:用户已锁定
3:用户未获批准
4:其他的东西????并需要更多的调查。即它是否在工作之前停止工作?你是否对你的memberhsip提供商进行了任何其他更改,比如passwordFormat等等。等等。