Share via


Como obter o emissor original real para uma declaração de identidade no SharePoint 2010

Artigo original publicado na quinta-feira, dia 31 de março de 2011

Executei esta tarefa de variadas maneiras no passado, mas finalmente decidi que deveria fazer tudo do modo "correto". A tarefa é simples – quando seu provedor de declarações personalizado estiver sendo chamado, como durante as declarações de aumento, e você quiser saber que tipo de usuário eles são - declarações do Windows, declarações FPA ou declarações SAML, como fazemos isso? Em vez de mostrar a você as diversas maneiras como fiz isso no passado, veja um pequeno trecho de código que resume o modo correto de fazer.

 

//obter o gerenciador de provedor de declarações

SPClaimProviderManager cpm = SPClaimProviderManager.Local;

//obter o usuário atual de forma que possamos obter o emissor original "real"

SPClaim curUser = SPClaimProviderManager.DecodeUserIdentifierClaim(entity);

//obter o emissor original para o usuário

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

                                 

if (loginType == SPOriginalIssuerType.Windows)

{

//criar janelas

}

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

(loginType == SPOriginalIssuerType.ClaimProvider))

{

//criar SAML

}

 

Acho que o código é bastante simples e, portanto, não tenho muitos comentários a adicionar. Neste caso, o parâmetro de "entidade" usado no método DecodeUserIdentifierClaim foi passado como parte de minha substituição de FillClaimsForEntity (isto é, declarações de aumento) em meu provedor de declarações personalizado. O método ilustrado aqui deve funcionar bastante bem em qualquer lugar em um provedor de declarações personalizado.

Esta é uma postagem de blog traduzida. Encontre o artigo original em How to Get the Real Original Issuer for an Identity Claim in SharePoint 2010