gpt4 book ai didi

WIF:自定义声明

转载 作者:行者123 更新时间:2023-12-05 00:35:43 27 4
gpt4 key购买 nike

我很难理解应该如何定义 claim 。网络上有很多关于创建声明的信息,但似乎没有一个是一致的。我在不同的帖子中发现了声明的四个属性:

  • claim 类型
  • claim 值(value)
  • 值类型

  • 假设您要创建声明,表示用户有权编辑用户对象,那么设置这些属性的正确方法是什么?

    此外,在 WIF 中似乎没有“Right”属性的属性。 “正确”仅在 WCF 的上下文中使用吗?

    我很困惑,帮助!

    编辑:

    感谢您的回复。为了更具体一点,我目前看到了我的自定义声明的两个选项:

    1-ClaimType=编辑,ClaimValue=用户

    2-ClaimType=Action,ClaimValue=EditUser

    选项一似乎更“基于声明”,选项似乎更“基于角色”。想法?

    最佳答案

    有两种不同的Claim .Net 中的类型。一个在 WIF ( Microsoft.IdentityModel.Claims ) 和一个在 System.IdentityModel.Claims在 WCF pre-WIF 中使用的那个(虽然它实际上并不是 WCT 的一部分)。只有System.IdentityModel.Claims.Claim有一个 Right你提到的属性(property)。

    我在 WCF 和 ASP.Net 中使用了声明方法,有和没有 WIF,WIF 编程模型绝对是两者中更简单的。

    对于您描述的用户编辑场景,我将定义一个具有合适名称的角色。 UserEditor 可能没问题,但听起来很具体。您应该查看要授予这些用户的所有权限的集合,并提出一个合适的汇总名称(也许是 UserAdministrator?)。

    对于这些用户,您应该添加角色声明(即类型 http://schemas.microsoft.com/ws/2008/06/identity/claims/roleMicrosoft.IdentityModel.Claims.ClaimTypes.Role )。如果您的身份提供者在您的应用程序外部并且您无法控制它发出的声明,那么您将需要实现自定义 ClaimsAuthenticationManager通过添加新的角色声明来转换已发布的声明集。

    然后,您可以使用 PrincipalPermissionAttribute 装饰要授予访问权限的操作。像这样:

    [PrincipalPermission(SecurityAction.Demand, Role = "UserAdministrator")]

    该框架相当灵活,可以在 ASP.Net、WCF 或常规 .Net 开发中以多种不同方式使用。您的问题没有提供很多背景信息,无法通过示例给出非常具体的答案。

    关于WIF:自定义声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9131048/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com