2014-01-17 56 views
0

我正在使用ASP.Net身份與ADFS 2.0(我認爲)。使用MVC5身份連接自定義角色

用戶在單獨的服務器上登錄,回到我身邊,檢查ClaimsPrincipal並提取userID聲明,然後使用該ID檢索用戶。

所以我只使用ADFS /基於聲明的身份驗證來獲取用戶對象;在那之後,我擁有諸如用戶組和角色之類的東西,但它們是自定義對象,我在應用程序中管理它們,而不是使用ADFS來管理它們。

我想知道的是:使用我的自定義數據庫角色和開箱即用的角色有多難?具體來說,我希望能夠在控制器上使用Role(「RoleName」)屬性,並在視圖中包裝User.IsInRole(「RoleName」)中的一些UI元素以控制用戶訪問。

我需要做些什麼來連接它?

回答

3

我不知道任何角色屬性。你的意思是授權(「RoleName」)屬性?

添加一個與IPrincipal.IsInRoleAuthorizeAttribute兼容的角色聲明非常簡單。只需添加一個要求,在您的控制器類型ClaimTypes.Role

//when creating a new identity 
var identity = new ClaimsIdentity(new Claim[] { 
    new Claim(ClaimTypes.Role, "MyRole1"), 
    new Claim(ClaimTypes.Role, "MyRole2") 
}); 

//add a claim to an identity 
identity.AddClaim(new Claim(ClaimTypes.Role, "MyRole3")); 

然後,添加AuthorizeAttribute

Authorize("MyRole1") 
+0

是啊,我的意思是授權( 「角色名」)。 – SuperNES

相關問題