How to: Deploy a claims provider in SharePoint 2013
Published: July 16, 2012

Learn how to deploy a SharePoint 2013 claims provider by using the features infrastructure and creating a class that inherits from SPClaimProviderFeatureReceiver.
Applies to: SharePoint Foundation 2013 | SharePoint Server 2013
The easiest way to deploy a claims provider is by using the features infrastructure. To do this, first define a feature and a feature receiver that derives from the SPClaimProviderFeatureReceiver class, and override the base properties.
The following is an example of how to do this.
public class MyClaimProviderFeatureReceiver : SPClaimProviderFeatureReceiver { public override string ClaimProviderAssembly { get { return typeof(MyClaimProvider).Assembly.FullName; } } public override string ClaimProviderType { get { return typeof(MyClaimProvider).FullName; } } public override string ClaimProviderDisplayName { get { return StringResourceManager.GetString(MyLocalizedClaimProviderName); } } public override string ClaimProviderDescription { get { return StringResourceManager.GetString(MyLocalizedClaimProviderDescription); } } }
The following is a sample that demonstrates how to define a feature and a feature receiver that derives from SPClaimProviderFeatureReceiver and override the base properties.
// Sample claims provider feature receiver class through which // the sample claims provider registers itself // with the Microsoft.SharePoint.Administration.Claims.SPClaimProviderManager class. using System; using Microsoft.SharePoint.Administration; using Microsoft.SharePoint.Administration.Claims; namespace MySample.Sample.Server.SampleClaimsProvider { /// <summary> /// The NameIdentifierClaimProviderFeatureReceiver class is a feature receiver class /// that registers the claims provider with the claims provider manager. /// </summary> [Microsoft.SharePoint.Security.SharePointPermission(System.Security.Permissions.SecurityAction.Demand, ObjectModel = true)] public sealed class NameIdentifierClaimProviderFeatureReceiver : SPClaimProviderFeatureReceiver { #region Private Methods /// <summary> /// Because use of base keyword can lead to unverifiable code inside a lambda expression, /// this function is created as a wrapper for the base.FeatureActivated function. /// This function gets called in the following lambda expression. /// </summary> /// <param name="properties">Represents the properties of a feature activation.</param> /// <returns> void </returns> private void ExecBaseFeatureActivated(Microsoft.SharePoint.SPFeatureReceiverProperties properties) { base.FeatureActivated(properties); } #endregion Private Methods #region Public Method\Properties /// <summary> /// Gets the fully qualified name of the MySample.Sample.Server.SampleClaimsProvider assembly. /// </summary> /// <returns>String representing fully qualified name of the MySample.Sample.Server.SampleClaimsProvider /// assembly.</returns> public override string ClaimProviderAssembly { get{ return typeof(SampleNameIdClaimProvider).Assembly.FullName; } } /// <summary> /// Gets the fully qualified name of the claims provider type, including the namespace of the type. /// </summary> /// <returns>String representing the fully qualified name of the ///SampleNameIdClaimProvider class.</returns> public override string ClaimProviderType { get{ return typeof(NameIdentifierClaimProvider).FullName; } } /// <summary> /// Gets the display name of the claims provider. /// </summary> /// <returns>String representing display name of the claim provider.</returns> public override string ClaimProviderDisplayName { get{ return "Sample NameId Claim Provider"; } } /// <summary> /// Gets the description about the claims provider. /// </summary> /// <returns>String representing the description about the SampleClaimProvider.</returns> public override string ClaimProviderDescription { get { return "This feature adds SampleNameId claim type in the SAML token created by the STS."; } } /// <summary> /// This methods gets called after the activation of the feature. /// </summary> /// <param name="properties">Represents the properties of a feature activation<./param> /// <returns>void.</returns> public override void FeatureActivated(Microsoft.SharePoint.SPFeatureReceiverProperties properties) { { ExecBaseFeatureActivated(properties); } } #endregion Public Method\Properties } }
Date | Description |
|---|---|
July 16, 2012 | Initial publication |