使用 MVC5 标识连接自定义角色



我在ADFS 2.0中使用 ASP.Net 身份(我认为)。

用户在单独的服务器上登录,回到我身边,我检查 ClaimPrincipal 并拉出 userID 声明,然后使用该 ID 检索用户。

所以我只使用基于 ADFS

/声明的身份验证来获取用户对象;之后,我有用户组和角色之类的东西,但它们是自定义对象,我在应用程序中管理它们,而不是使用 ADFS 来管理它们。

我想知道的是:将我的自定义数据库角色与开箱即用的角色一起使用有多难?具体来说,我希望能够在控制器上使用 Role("RoleName") 属性,并在视图上包装 User.IsInRole("RoleName") 中的一些 UI 元素来控制用户访问。

我该怎么做才能连接起来?

我不知道任何角色属性。您的意思是授权("角色名称")属性吗?

因此,添加与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")

最新更新