簡體   English   中英

ASP.NET MVC登錄控制器方法沒有使用自定義成員資格提供程序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM