上次修改时间: 2011年3月23日
适用范围: SharePoint Foundation 2010
声明提供程序发布声明并将其封装到安全令牌中。声明提供程序具有两种角色:增加和选取。
声明增加让应用程序能够将其他声明增加到用户令牌中。例如,对于基于 Windows 的登录,Active Directory 目录服务可将一名用户的所有安全组增加到该用户的 Windows 令牌中。对于基于声明的登录,客户关系管理 (CRM) 应用程序可从 CRM 数据库增加角色。通过将这些声明加入用户的令牌,可以针对这些声明为资源授权。即这些声明用于确定特定用户是否对特定资源有访问权限。
通过声明选取,可在人员选取器控件中显示声明。声明选取使应用程序能够在人员选取器中呈现声明,例如配置 SharePoint 网站或 SharePoint 服务的安全性时。此功能使您能够实现声明的搜索、解析和友好显示。
备注
具有声明选取功能的人员选取器有时称为声明选取器。
若要编写声明提供程序,第一步是创建一个派生自 SPClaimProvider 类的类。
![]() |
---|
有关代码示例以及关于SPClaimProvider 类及其成员的详细信息,请参阅 SPClaimProvider。 |
必需的实现
以下是编写声明提供程序必需的方法和属性。
必需属性
以下 Name 属性是必需属性。名称在服务器场中应为唯一。
public abstract String Name
声明选取器的必需方法
通过声明选取,可在人员选取器控件中显示声明。如果要在人员选取器控件中实现声明选取,SPClaimProvider 类中的以下方法是必需方法。
protected abstract void FillSchema(SPProviderSchema schema);
protected abstract void FillClaimTypes(List<String> claimTypes);
protected abstract void FillClaimValueTypes(List<String> claimValueTypes);
protected abstract void FillEntityTypes(List<String> entityTypes);
声明增加的必需方法
在用户的安全令牌中包含其他声明时,即为增加声明。如果要增加声明,您必须实现 SPClaimProvider 类中的以下方法。
public abstract bool SupportsEntityInformation
protected abstract void FillClaimsForEntity(Uri context, SPClaim entity, List<SPClaim> claims);
在声明选取器的左窗格上显示层次结构的必需方法
如果要在声明选取器的左窗格上显示层次结构,您必须实现 SPClaimProvider 类中的以下方法。
public abstract bool SupportsHierarchy
protected abstract void FillHierarchy(Uri context, String[] entityTypes, String hierarchyNodeID, int numberOfLevels, bool includeEntityData, SPProviderHierarchyTree hierarchy);
在声明选取器的键入控件中解析声明的必需方法
如果希望能够使用声明选取器的键入控件解析声明,您必须实现 SPClaimProvider 类中的以下方法。
public abstract bool SupportsResolve
protected abstract void FillResolve(Uri context, String[] entityTypes, String resolveInput, List<PickerEntity> resolved);
protected abstract void FillResolve(Uri context, String[] entityTypes, SPClaim resolveInput, List<PickerEntity> resolved);
在声明选取器中搜索声明的必需属性和方法
如果希望能够在声明选取器中搜索声明,您必须实现 SPClaimProvider 类中的以下属性和方法。
public abstract bool SupportsSearch
protected abstract void FillSearch(Uri context, String[] entityTypes, String searchPattern, String hierarchyNodeID, int maxCount, SPProviderHierarchyTree searchTree);
有用的帮助程序方法
您还可以实现帮助程序方法来帮助创建 SPClaim 对象。
用于创建 SPClaim 对象的有用帮助程序方法
以下是您可以实现以帮助创建 SPClaim 对象的一个帮助程序方法。
protected SPClaim CreateClaim(String claimType, String value, String valueType)