我們正在MVC 4中構建一個新站點。在檢查是否允許某人登錄時,有一些稍微不尋常的要求,因此只需檢查用戶名,密碼和在這種情況下啓用不夠,(也將檢查角色)。MVC 4會員和角色提供者現在最明智的方法是什麼
我開始做傳統的自定義membershipprovider類和roleprovider。 MVC4不喜歡我這樣做:
This method cannot be called during the application's pre-start initialization phase.
這是我的理解是,由於簡單的成員資格提供和OAuth的東西,(我不知道這方面的一個很大)。一個解決似乎是:
<add key="enableSimpleMembership" value="false"/>
<add key="autoFormsAuthentication" value="false"/>
它讓我知道,我應該還是可以做會員的供應商?我的數據庫是本地的,我有一個服務層,具有所有的邏輯來指示用戶是否可以登錄以及他們擁有哪些角色和權限。我是否應該查看oauth /簡單會員/其他方式,或者如上所述,關閉簡單會員資格?
如果我確實把它關閉了,我可以在稍後的階段整合oauth(這只是我的思路非常廣泛,目前沒有這個要求)。是否可以使用多個身份驗證機制?
抑或是真的這麼簡單,(的AccountController):
public ActionResult Login()
{
if(logiclayer.CheckAccess("username", "password"))
{
var persistCookie = false;
FormsAuthentication.SetAuthCookie("userName", persistCookie);
}
return View();
}
所以他們的Cookie設置,然後控制器可以使用[Authorize]
屬性?這並沒有考慮到[Authorize(Roles = "admin")]
,因爲如果沒有設置角色提供程序(這會回到原始問題),應該如何完成這將導致錯誤。