Получение реального исходного издателя идентификационного утверждения в SharePoint 2010


 

Исходная статья опубликована в четверг 31 марта 2011 г.

Я выполнял эту задачу разными способами на протяжении последних лет, но наконец-то решил сделать все "правильно".  Эта задача довольно проста — при вызове настраиваемого поставщика утверждений, например для дополнения утверждений, требуется узнать тип пользователя: утверждения Windows, утверждения FBA или SAML. Как это сделать?  Я не буду описывать все способы, которые я использовал для решения этой задачи, а представлю короткий пример кода, в котором показывается, как это делается правильно.

 

//получение диспетчера поставщиков утверждений

SPClaimProviderManager cpm = SPClaimProviderManager.Local;

 

//получение текущего пользователя для извлечения "реального" исходного издателя

SPClaim curUser = SPClaimProviderManager.DecodeUserIdentifierClaim(entity);

 

//получение исходного издателя для пользователя

SPOriginalIssuerType loginType = SPOriginalIssuers.GetIssuerType(curUser.OriginalIssuer);

                                 

if (loginType == SPOriginalIssuerType.Windows)

{

//обработка окон

}

else if ((loginType == SPOriginalIssuerType.TrustedProvider) ||

(loginType == SPOriginalIssuerType.ClaimProvider))

{

//обработка SAML

}

 

Я думаю, код довольно понятен, поэтому много комментариев не требуется.  В этом случае параметр "entity", используемый в методе DecodeUserIdentifierClaim, передан как часть моего переопределения FillClaimsForEntity (т. е. дополняющие утверждения) в настраиваемом поставщике утверждений.  Метод, показанный здесь, должен работать довольно хорошо в любом настраиваемом поставщике утверждений.

Это локализованная запись блога. Исходная статья доступна по адресу How to Get the Real Original Issuer for an Identity Claim in SharePoint 2010


Skip to main content