C# 获得';由于其保护级别';尝试使用MembershipProvider.EncryptPassword时出错
尝试在使用EncryptPassword方法将密码存储在数据库中之前对其进行加密,然后使用MembershipProvider.DecryptPassword方法对其进行加密,但获取“由于其保护级别而无法访问”错误警告。因为C# 获得';由于其保护级别';尝试使用MembershipProvider.EncryptPassword时出错,c#,asp.net,.net,asp.net-mvc,.net-4.0,C#,Asp.net,.net,Asp.net Mvc,.net 4.0,尝试在使用EncryptPassword方法将密码存储在数据库中之前对其进行加密,然后使用MembershipProvider.DecryptPassword方法对其进行加密,但获取“由于其保护级别而无法访问”错误警告。因为MembershipProvider.EncryptPassword和MembershipProvider.DecryptPassword方法受保护 因此,您将无法在类或其派生类定义之外访问它们 当通过Membership.CreateUser创建任何用户时,它会自动加密密码
MembershipProvider.EncryptPassword
和MembershipProvider.DecryptPassword
方法受保护
因此,您将无法在类或其派生类定义之外访问它们
当通过
Membership.CreateUser
创建任何用户时,它会自动加密密码。因为MembershipProvider.EncryptPassword
和MembershipProvider.DecryptPassword
方法都受到保护
因此,您将无法在类或其派生类定义之外访问它们
当通过
会员身份创建任何用户时。CreateUser
会自动加密密码。需要查看更多代码来告诉您发生了什么。它与您试图访问的私有或内部成员有关。需要查看更多代码来告诉您发生了什么。它与您试图访问的私人或内部成员有关。好的,谢谢。因此,我甚至可能不需要从我的操作方法中调用它们,并且默认的成员资格提供程序可能会处理加密/解密,前提是在web.config.Ok中将PasswordFormat属性设置为“Encrypted”。因此,我甚至可能不需要从我的操作方法中调用它们,并且默认成员资格提供程序可能会处理加密/解密,前提是在web.config中将PasswordFormat属性设置为“Encrypted”。
public ActionResult Register(RegisterModel RegisterModel, string returnUrl)
{
if (ModelState.IsValid)
{
// Attempt to register the user
MembershipCreateStatus createStatus;
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
Byte[] Password = encoding.GetBytes(RegisterModel.Password);
var EncryptedPass = MembershipProvider.EncryptPassword(Password);
Membership.CreateUser(RegisterModel.UserName, RegisterModel.Password, RegisterModel.Email, null, null, true, null, out createStatus);
if (createStatus == MembershipCreateStatus.Success)
{
FormsAuthentication.SetAuthCookie(RegisterModel.UserName, false /* createPersistentCookie */);
return Redirect(returnUrl ?? Url.Action("Index", "Education"));
}
else
{
ModelState.AddModelError("", ErrorCodeToString(createStatus));
}
}
// If we got this far, something failed, redisplay form
return View(RegisterModel);
}