如何在空成员表中创建自己的密码
本文关键字:创建 自己的 密码 成员 | 更新日期: 2023-09-27 17:50:15
我需要在一个空的[aspnet_Membership]表中创建一个用户。
public string EncodePassword(string pass, string salt)
{
byte[] bIn = Encoding.Unicode.GetBytes(pass);
byte[] bSalt = Convert.FromBase64String(salt);
byte[] bAll = new byte[bSalt.Length + bIn.Length];
byte[] bRet = null;
System.Buffer.BlockCopy(bSalt, 0, bAll, 0, bSalt.Length);
System.Buffer.BlockCopy(bIn, 0, bAll, bSalt.Length, bIn.Length);
System.Security.Cryptography.HashAlgorithm s = System.Security.Cryptography.HashAlgorithm.Create(Membership.HashAlgorithmType);
bRet = s.ComputeHash(bAll);
return Convert.ToBase64String(bRet);
}
我正在使用ASP。. NET身份验证登录,但密码错误,无法登录网站。
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="SQLConnectionString"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresUniqueEmail="false"
requiresQuestionAndAnswer="false"
minRequiredPasswordLength="3"
minRequiredNonalphanumericCharacters="0"
applicationName="eShop"
passwordFormat="Hashed" />
</providers>
</membership>
password = EncodePassword(password, "asas" + password);
string userId = "0";
SqlCommand c = new SqlCommand();
c.Connection = con;
cmd.CommandText = "Select UserId From aspnet_Users Where UserName ='" + username + "'";
userId = ((int)cmd.ExecuteScalar()).ToString();
cmd.CommandText = string.Empty;
c.CommandText = "insert InTo aspnet_Membership ([ApplicationId], [UserId], [Password], [PasswordSalt], [PasswordFormat]) ";
c.CommandText += "Values (2 , " + userId + ",'" + password + "','" + password + "', 1)";
c.ExecuteNonQuery();
和我有一个简单的asp.net登录控件我怎么能做到这一点?
不要尝试直接更改数据库。如果要以编程方式添加新用户,请使用Membership。CreateUser方法。该方法的文档包含一个示例,其中包含您需要编写的代码。
除了自己编写登录和注册代码,您还可以使用内置的登录控件,如CreateUserWizard控件来添加新向导,ChangePassword控件来更改密码等。