这是一个Web表单应用程序项目(WAP)。我以编程方式创建具有custom profile属性的用户,并且可以看到用户数据持久存储在Users表中,但不能存储在aspnet_membership或Memberships表中。使用自定义注册表单创建新用户后,登录失败。 有人可以提出问题排查清单吗?
MembershipCreateStatus status = MembershipCreateStatus.Success;
MembershipUser newUser
= Membership.CreateUser(userNameTxt.Text.Trim(), passwordTxt.Text,
emailTxt.Text, questionTxt.Text, answerTxt.Text, true, out status);
Roles.AddUserToRole(userNameTxt.Text.Trim(), "Member");
// Gather and save Profile info
CustomProfile profile = CustomProfile.GetProfile(userNameTxt.Text.Trim());
profile.Personal.Email = emailTxt.Text.Trim();
profile.Personal.FirstName = firstNameTxt.Text.Trim();
profile.Personal.LastName = lastNameTxt.Text.Trim();
profile.Save();
错误消息:您的登录尝试失败。请再试一次。
发生了什么: CreateUser返回null
<providers>
<remove name="DefaultMembershipProvider"/>
<add
name="DefaultMembershipProvider"
type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
connectionStringName="LocalSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="false"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="1000"
passwordFormat="Hashed"
applicationName="/" />
</providers>
<remove name="LocalSqlServer" />
<add name="LocalSqlServer"
connectionString="Initial Catalog=MYDB;Data Source=WIN2K8;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />
<remove name="MYDBConn" />
<add name="MYDBConn" connectionString="Initial Catalog=MYDB;Data Source=WIN2K8;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />
答案 0 :(得分:0)
在使用代码创建用户之前,请确保您可以使用ASP.Net Configuration创建用户。
以下是一些建议"Your Login Attempt was not Successful. Please Try Again." - ASP.NET Login Control.
答案 1 :(得分:0)
显然在.NET 4中,使用的默认哈希算法是HMACSHA256,而不是以前的Framework版本中的SHA1。我在这里找到了解决方案:
ASP.NET Membership - User Password storage
Login fails after upgrade to ASP.net 4.0 from 3.5
我刚刚调整了SHA1的配置文件,如下所示:
<membership defaultProvider="DefaultMembershipProvider" hashAlgorithmType="SHA1">
...
</membership>