我们必须使用 API 获取与 Web 应用程序及其身份声明编码类型关联的所有声明提供程序。
例如:
如果windows认证的身份声明是用户名,用户名是一个字符串,那么我们应该得到“i:0#.w”。
如果表单身份验证的身份声明是电子邮件并且提供者名称是“fba”,那么我们应该得到“i:0!.f|fba|”。
下面的链接向我们展示了获取与 Web 应用程序关联的所有声明提供者,但是我们如何获取每个提供者的身份声明编码类型?
http://msdn.microsoft.com/en-us/library/gg650432(v=office.14).aspx#SP_WCP_Tip3
using (SPSite theSite = new SPSite("http://someContosoUrl"))
{
// 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 list of authentication providers that are associated with the zone.
foreach (SPAuthenticationProvider prov in
theSettings.ClaimsAuthenticationProviders)
{
// Need to get the identity claims encoding type using the SPAuthenticationProvider
}
}
Windows 身份验证的身份声明编码类型始终是 i.0#.w 还是身份声明始终是用户名?
感谢和问候,
卡莱。