簡體   English   中英

ASP.NET MVC 3-多個成員資格提供程序和多個登錄頁面

[英]ASP.NET MVC 3 - Multiple membership provider and multiple login pages

簡單地在Web.Config上配置多個提供程序,並分別為每個提供程序調用ValidateUser。但是如何為每個提供程序使用自定義Authorize屬性? 就我而言,我想使用2個不同的登錄頁面,2個不同的登錄控制器和2個不同的角色提供程序。

可能嗎?

擁有2個不同的自定義授權屬性對您來說聽起來如何。 如果發現用戶未經身份驗證,最終結果將是一個不同的視圖。 或將初始化IPrincipal或IIdentity。 您可以使用HttpContent.Current.User.Identity.IsAuthenticated和.IsInRole()

if (CurrentProvider.ValidateUser())
{
     CustomIdentity1 idn = new CustomIdentity1(userName);
     filterContext.HttpContext.User = new CustomPrincipal1(idn);
}
else
{          
     filterContext.Result = new RedirectResult((filterContext.Controller as Controller).
        Url.Action("Login", "User"));         
}

您可以接受一個名為ProviderName的屬性,並基於該屬性初始化CurrentProvider。 這也可以消除對多個自定義屬性的需求。

注意:當然,CustomIdentity1(,2,3)也基於使用哪個提供程序。 CustomIdentity1是IIdentity的實現。 CustomPrincipal1是IPrincipal的實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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