当前位置: 首页 > 知识库问答 >
问题:

自定义asp.net身份角色声明

蓟辰沛
2023-03-14

我使用asp.net身份与索赔主体和索赔身份。标识由自定义用户管理器创建,并作为承载令牌发送给客户端。

一切正常,但是我想指示asp.net使用角色的自定义声明类型,而不是标准的System。安全。索赔。声明类型。作用(http://schemas.microsoft.com/ws/2008/06/identity/claims/role)。

有可能吗?

编辑:我想对角色构造函数使用标准的Authorize属性,例如:Authorize(Roles=“staff”),并让框架检查声明,但我的自定义角色声明类型(“MyApprovalClaim”)不是标准类型。

共有1个答案

季华茂
2023-03-14

你可以做这样的事情,

public class CustomPrinciple : ClaimsPrincipal
{
    public CustomPrinciple(ClaimsIdentity identity) : base(identity)
    {
    }

    public override bool IsInRole(string role)
    {
        return HasClaim("myRoleClaimType", role);
    }
}

[TestClass]
public class CustomRoleTest
{
    [TestMethod]
    public void testing_custom_role_type()
    {
        var identity = new ClaimsIdentity();
        identity.AddClaim(new Claim("myRoleClaimType", "role1"));
        var principle = new CustomPrinciple(identity);

        Assert.IsTrue(principle.IsInRole("role1"));
        Assert.IsFalse(principle.IsInRole("role2"));
    }
}
 类似资料:
  • 我们有一个使用社交网络身份验证的Azure移动应用。尝试使用自定义令牌处理程序将用户角色添加为声明。 这一切都可以在localhost上运行——令牌被添加到令牌处理程序中,并且在调用AuthorizationAtinn OnAuthoration方法时可用。具有指定角色的授权属性按预期工作。 但是当运行的是Azure时——声明被添加,但当调用OnAuthorization方法时,自定义角色声明就消

  • 我有以下问题。当使用下面的代码来更改用户的当前角色时,我收到了如下消息的异常: 附加“模型。实体。用户”类型的实体失败,因为另一个相同类型的实体已经具有相同的主键值。如果图形中的任何实体具有冲突的键值,则使用“附加”方法或将实体的状态设置为“未更改”或“修改”时可能会发生这种情况。这可能是因为某些实体是新的并且尚未收到数据库生成的键值。在这种情况下,使用“添加”方法或“添加”实体状态来跟踪图形,然

  • 自定义角色:只有团队负责人、团队管理员和地图管理员三个角色可以创建自定义角色,可以自定义角色的名称和权限。 自定义角色分为: 自定义地图角色:对地图级别进行权限设置 自定义图层角色:对图层级别进行权限设置 自定义子图层角色:对子图层级别进行权限设置 自定义业务流角色:对业务流层级进行权限设置 1.创建自定义角色: 以地图角色创建为例,点击“创建新角色”,出现创建创建新角色的弹框。点击“地图角色”。

  • 我已经基于命名的路由为Laravel(4.2)创建了自定义角色管理器,例如: 基本上,任何注册为

  • 问题内容: 这是我的情况: 一个Web应用程序对许多应用程序执行某种SSO 登录的用户,而不是单击链接,该应用就会向正确的应用发布包含用户信息(名称,pwd [无用],角色)的帖子 我正在其中一个应用程序上实现SpringSecurity以从其功能中受益(会话中的权限,其类提供的方法等) 因此,我需要开发一个 自定义过滤器 -我猜想-能够从请求中检索用户信息,通过自定义 DetailsUserSe

  • 我有这个香草Spring启动/azure/starter应用程序,连接到我们的内部azure服务。https://docs.microsoft.com/de-de/azure/developer/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-active-directory 一般按设计工作。 如果要为