[英]ASP.NET MVC login controller method without using a custom membership provider?
我很好奇為什么我需要創建一個自定義MembershipProvider而不應該做這樣的事情來登錄潛在用戶。
[HttpPost]
public ActionResult Login(string username, string password)
{
UserUnitOfWork unitOfWork = new UserUnitOfWork();
User user = unitOfWork.UserRepository.GetByUsername(username);
if (user != null)
{
SaltedHashHelper saltHelper = new SaltedHashHelper();
if (saltHelper.VerifyHashString(username, user.Password, user.Salt))
FormsAuthentication.SetAuthCookie(user.Username, false);
}
else
{
// User cannot be verified.
}
return View();
}
如果我創建一個自定義MembershipProvider,那么我將不得不創建一個自定義MembershipUser,因為我沒有使用asp.net成員資格表。 當你不使用aspnet成員資格表時,我覺得這更令人頭痛。 也許我錯了。
有人看到我上面的方法有什么問題嗎? 我很好奇。
你的方法很好,所以長期正確的鹽和哈希密碼,並妥善保護自己免受SQL注入。
內置提供程序將比定制的身份驗證提供程序更好地進行測試,並且可能更安全,具體取決於您的實現。
您不需要創建自定義成員資格提供程序,您可以使用ASP.NET提供的開箱即用的功能。 事實上,如果有任何其他方法,實施您自己的身份驗證方案總是不可取的。 最糟糕的情況是,只需覆蓋您真正需要采取不同行為的提供程序方法。
看一下針對.NET開發人員的OWASP Top 10第7部分:不安全的加密存儲 ,了解為什么這是一個壞主意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.