Sharepoint 2010 supports claims based authentication wherein an external identity provider (like ADFS) issues SAML tokens which are used by sharepoint to authenticate users in the sharepoint web application.
Many a times, we need to programmatically retrieve the login provider's information in the sharepoint web application. This can be done using the following code:
using (SPSite theSite = new SPSite(http://siteurl/))
{
// Get the web application.
SPWebApplication wa = theSite.WebApplication;
// Get the zone for the site.
SPUrlZone theZone = theSite.Zone;
// Get the settings that are associated with the zone.
SPIisSettings theSettings = wa.GetIisSettingsWithFallback(theZone);
// Get the token service manager so that we can retrieve the appropriate
// trusted login provider.
SPSecurityTokenServiceManager sptMgr = SPSecurityTokenServiceManager.Local;
// Get the list of authentication providers that are associated with the zone.
foreach (SPAuthenticationProvider prov in
theSettings.ClaimsAuthenticationProviders)
{
// Ensure that the provider we are looking at is a SAML claims provider.
if (prov.GetType() ==
typeof(Microsoft.SharePoint.Administration.SPTrustedAuthenticationProvider))
{
// Get the SPTrustedLoginProvider object by using the DisplayName property.
var lp =
from SPTrustedLoginProvider spt in
sptMgr.TrustedLoginProviders
where spt.DisplayName == prov.DisplayName
select spt;
// There should be only one match, so retrieve that value.
if ((lp != null) && (lp.Count() > 0))
{
// Get the login provider.
SPTrustedLoginProvider loginProv = lp.First();
// Get the logon information.provinfo contains the display name of the trusted login provider
// as well as the provider url
string provInfo = prov.DisplayName + " - " +
loginProv.ProviderUri.ToString();
}
}
}
}
Many a times, we need to programmatically retrieve the login provider's information in the sharepoint web application. This can be done using the following code:
using (SPSite theSite = new SPSite(http://siteurl/))
{
// Get the web application.
SPWebApplication wa = theSite.WebApplication;
// Get the zone for the site.
SPUrlZone theZone = theSite.Zone;
// Get the settings that are associated with the zone.
SPIisSettings theSettings = wa.GetIisSettingsWithFallback(theZone);
// Get the token service manager so that we can retrieve the appropriate
// trusted login provider.
SPSecurityTokenServiceManager sptMgr = SPSecurityTokenServiceManager.Local;
// Get the list of authentication providers that are associated with the zone.
foreach (SPAuthenticationProvider prov in
theSettings.ClaimsAuthenticationProviders)
{
// Ensure that the provider we are looking at is a SAML claims provider.
if (prov.GetType() ==
typeof(Microsoft.SharePoint.Administration.SPTrustedAuthenticationProvider))
{
// Get the SPTrustedLoginProvider object by using the DisplayName property.
var lp =
from SPTrustedLoginProvider spt in
sptMgr.TrustedLoginProviders
where spt.DisplayName == prov.DisplayName
select spt;
// There should be only one match, so retrieve that value.
if ((lp != null) && (lp.Count() > 0))
{
// Get the login provider.
SPTrustedLoginProvider loginProv = lp.First();
// Get the logon information.provinfo contains the display name of the trusted login provider
// as well as the provider url
string provInfo = prov.DisplayName + " - " +
loginProv.ProviderUri.ToString();
}
}
}
}
No comments:
Post a Comment