ClaimsAuthenticationManager 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
定义声明身份验证管理器的基本实现。 声明身份验证管理器在执行到达应用程序代码之前,在声明处理管道中提供了一个位置,用于将处理逻辑(筛选、验证、扩展)应用到传入主体中的声明集合。
public ref class ClaimsAuthenticationManager : System::IdentityModel::Configuration::ICustomIdentityConfiguration
public class ClaimsAuthenticationManager : System.IdentityModel.Configuration.ICustomIdentityConfiguration
type ClaimsAuthenticationManager = class
interface ICustomIdentityConfiguration
Public Class ClaimsAuthenticationManager
Implements ICustomIdentityConfiguration
- 继承
-
ClaimsAuthenticationManager
- 实现
示例
以下代码演示了一个简单的声明身份验证管理器,该管理器将角色声明添加到传入主体,而无需对传入声明执行任何检查。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Claims;
namespace MyClaimsAuthenticationManager
{
class SimpleClaimsAuthenticatonManager : ClaimsAuthenticationManager
{
public override ClaimsPrincipal Authenticate(string resourceName, ClaimsPrincipal incomingPrincipal)
{
if (incomingPrincipal != null && incomingPrincipal.Identity.IsAuthenticated)
{
((ClaimsIdentity)incomingPrincipal.Identity).AddClaim(new Claim(ClaimTypes.Role, "User"));
}
return incomingPrincipal;
}
}
}
以下 XML 显示 <claimsAuthenticationManager> 元素。
<system.identityModel>
<identityConfiguration>
<claimsAuthenticationManager type="MyClaimsAuthenticationManager.SimpleClaimsAuthenticatonManager, MyClaimsAuthenticationManager" />
...
</identityConfiguration>
</system.identityModel>
注解
声明身份验证管理器在应用程序的声明处理管道中提供了一个扩展点,可用于验证、筛选、修改、传入声明或将新声明注入到执行 RP 应用程序代码之前提供的 ClaimsPrincipal 声明集中。 甚至可以返回自定义实现 ClaimsPrincipal ,前提是 RP 应用程序需要它。 类提供ClaimsAuthenticationManager的默认实现返回未修改的ClaimsPrincipal声明;但是,你可以派生自此类并重写Authenticate方法以修改 (或返回自定义ClaimsPrincipal) 中的ClaimsPrincipal声明。
创建自定义声明身份验证管理器的一个典型原因是,根据仅已知或由 RP 应用程序维护的信息添加、删除或转换声明。 例如,购物车应用程序中客户购买的历史记录可能保留在 RP 应用程序维护的数据源中,然后根据传入主体中找到的名称声明的值添加到声明身份验证管理器返回的声明主体中。
可以将应用程序配置为ClaimsAuthenticationManager使用编程方式,方法是使用IdentityConfiguration类或通过 claimsAuthenticationManager> 元素(它是 identityConfiguration 元素的子元素)进行配置<。<> 可以重写该方法 LoadCustomConfiguration ,以便为自定义管理器配置自定义管理器的 <claimsAuthenticationManager> 元素的自定义子元素提供处理。 基本实现 ClaimsAuthenticationManager 不处理任何子元素。
将应用程序配置为使用声明身份验证管理器可确保从请求管道Windows Identity Foundation (WIF)调用它。
构造函数
| 名称 | 说明 |
|---|---|
| ClaimsAuthenticationManager() |
初始化 ClaimsAuthenticationManager 类的新实例。 |
方法
| 名称 | 说明 |
|---|---|
| Authenticate(String, ClaimsPrincipal) |
在派生类中重写时,返回一个 ClaimsPrincipal 与 RP 应用程序要求一致的对象。 默认实现不会修改传入 ClaimsPrincipal。 |
| Equals(Object) |
确定指定的对象是否等于当前对象。 (继承自 Object) |
| GetHashCode() |
用作默认哈希函数。 (继承自 Object) |
| GetType() |
获取当前实例的 Type。 (继承自 Object) |
| LoadCustomConfiguration(XmlNodeList) |
在派生类中重写时,从 XML 加载自定义配置。 |
| MemberwiseClone() |
创建当前 Object的浅表副本。 (继承自 Object) |
| ToString() |
返回一个表示当前对象的字符串。 (继承自 Object) |