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 == true)
{
((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 元素配置应用程序ClaimsAuthenticationManager
,以编程方式IdentityConfiguration使用类,或通过 <claimsAuthenticationManager> 元素 (,该元素是 identityConfiguration> 元素) 的<子元素。 可以重写该方法 LoadCustomConfiguration ,以便为可以配置自定义管理器的元素的 <claimsAuthenticationManager>
自定义子元素提供处理。 基本实现 ClaimsAuthenticationManager 不处理任何子元素。
将应用程序配置为使用声明身份验证管理器可确保从请求管道Windows Identity Foundation (WIF) 调用它。
构造函数
ClaimsAuthenticationManager() |
初始化 ClaimsAuthenticationManager 类的新实例。 |
方法
Authenticate(String, ClaimsPrincipal) |
在派生中重写时,将返回与 RP 应用程序的要求一致的 ClaimsPrincipal 对象。 默认实现未修改传入的 ClaimsPrincipal。 |
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
LoadCustomConfiguration(XmlNodeList) |
在派生类中重写时,将从 XML 中加载自定义配置。 |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |