Метод SPClaimProvider.FillClaimsForEntity (Uri, SPClaim, List<SPClaim>)
При реализации в класс, производный дополняет настраиваемых утверждений в маркер утверждений.
Пространство имен: Microsoft.SharePoint.Administration.Claims
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
Protected MustOverride Sub FillClaimsForEntity ( _
context As Uri, _
entity As SPClaim, _
claims As List(Of SPClaim) _
)
'Применение
Dim context As Uri
Dim entity As SPClaim
Dim claims As List(Of SPClaim)
Me.FillClaimsForEntity(context, entity, _
claims)
protected abstract void FillClaimsForEntity(
Uri context,
SPClaim entity,
List<SPClaim> claims
)
Параметры
context
Тип: System.UriКонтекст как URI. Это должен быть правильно отформатированного URI.
entity
Тип: Microsoft.SharePoint.Administration.Claims.SPClaimСущность, которую необходимо дополнить.
claims
Тип: System.Collections.Generic.List<SPClaim>SPClaim универсальный утверждений списка будет изменен, где будут добавлены дополнительные утверждения или расширения утверждений.
Замечания
При включении дополнительных утверждений в маркере безопасности пользователя дополнения утверждений. Если вы хотите расширения утверждений, необходимо реализовать этот метод. Кроме того необходимо также установить свойство SupportsEntityInformationtrue в классе SPClaimProvider . Чтобы этот метод должен быть вызван, SupportsEntityInformation должен возвращать true.
Дополнительные сведения о расширения утверждений можно How to: Create a Claims Provider и Claims Provider.
В следующем примере кода показана поддержка для расширения утверждений и способы расширения утверждений. В целях демонстрации в этом примере поставщик утверждений поддерживает только расширение утверждения для двух пользователей «contoso\spuser1» и «contoso\spuser2». Когда поставщик утверждений видит эти два пользователя для входа на сайт SharePoint, поставщика утверждений будут добавлены два дополнительных утверждений маркер пользователя: CRMClaimType.Role и CRMClaimType.Region , которые определены в отдельный класс (не показано).
DecodeUserIdentifierClaim() является статическим методом, который может использоваться для декодирования утверждений удостоверений пользователей.
Пример кода предоставлен:Sample code provided by: Энди Ли (Andy Li), корпорация Майкрософт
Примеры
public override bool SupportsEntityInformation
{
get { return true; }
}
protected override void FillClaimsForEntity(Uri context, SPClaim entity, List<SPClaim> claims)
{
if (null == entity)
{
throw new ArgumentNullException("entity");
}
if (null == claims)
{
throw new ArgumentNullException("claims");
}
// Adds the role claim.
SPClaim userIdClaim = SPClaimProviderManager.DecodeUserIdentifierClaim(entity);
//Adds claims for SPUSER1 with CONTOSO as the domain.
if (userIdClaim.Value.ToUpper() == "CONTOSO\\SPUSER1")
{
claims.Add(CreateClaim(CRMClaimType.Role, CRMRoleValue.SalesManager, Microsoft.IdentityModel.Claims.ClaimValueTypes.String));
claims.Add(CreateClaim(CRMClaimType.Region, CRMRegionValue.NorthWest, Microsoft.IdentityModel.Claims.ClaimValueTypes.String));
}
// Adds claims for CONTOSO\SPUSER2
if (userIdClaim.Value.ToUpper() == "CONTOSO\\SPUSER2")
{
claims.Add(CreateClaim(CRMClaimType.Role, CRMRoleValue.RegionManager, Microsoft.IdentityModel.Claims.ClaimValueTypes.String));
claims.Add(CreateClaim(CRMClaimType.Region, CRMRegionValue.NorthWest, Microsoft.IdentityModel.Claims.ClaimValueTypes.String));
}
}
См. также
Справочные материалы
Перегрузка FillClaimsForEntity
Пространство имен Microsoft.SharePoint.Administration.Claims