デフォルトのasp.net mvc 4メンバーシップシステムを使用しています。ユーザーは、自分のユーザー名とパスワードを ASP.NET Web API 経由でプレーン テキストで送信します。
だから私は彼の平易なパスワードを持っています.それを保存されたハッシュ化されたパスワードと比較するにはどうすればよいですか?
文字列を取り、それをハッシュ化されたものと比較する関数はありますか?
デフォルトのasp.net mvc 4メンバーシップシステムを使用しています。ユーザーは、自分のユーザー名とパスワードを ASP.NET Web API 経由でプレーン テキストで送信します。
だから私は彼の平易なパスワードを持っています.それを保存されたハッシュ化されたパスワードと比較するにはどうすればよいですか?
文字列を取り、それをハッシュ化されたものと比較する関数はありますか?
メンバーシップを使用するには、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");
}
}
}
}
モデルは次のようになります。
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; }
}