Bla*_*azi 3 c# asp.net asp.net-mvc asp.net-membership asp.net-web-api
我正在使用默认的asp.net mvc 4会员系统.用户以纯文本形式通过ASP.NET Web API发送用户名和密码.
所以我有他的普通密码,如何将其与存储的哈希密码进行比较?
是否有一个函数需要一个字符串并将其与散列的字符串进行比较?
小智 6
您必须确保正确设置web.config以使用成员资格.http://msdn.microsoft.com/en-us/library/6e9y4s5t%28v=vs.100%29.aspx
另外,我还要确保在web.config中创建一个MachineKey.http://msdn.microsoft.com/en-us/library/ff649308.aspx
您将在控制器中放置的代码类似于:
[HttpPost]
public ActionResult Login(AuthenticationModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.Username, model.Password)) {
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您的模型类似于:
public class AuthenticationModel
{
[Required]
[Display(Name = "Username")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember Me?")]
public bool RememberMe { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5230 次 |
| 最近记录: |