Obter credenciais SSO através de código em SharePoint falhar
-
05-07-2019 - |
Pergunta
O código a seguir é usado em um WebPart personalizado, e por algum motivo ele só funciona na primeira vez que é executado em uma página. Depois disso ele lança um SingleSignonCredsNotFoundException
Qualquer ajuda ou sugestões sobre a forma de resolver este problema é muito apreciada.
public static SsoIdentity GetCredentials(string applicationName)
{
try
{
ISsoProvider ssoProvider = SsoProviderFactory.GetSsoProvider();
SsoCredentials credentials = ssoProvider.GetCredentials(applicationName);
string[] tmp = ConvertSecurityStringToString(credentials.UserName).Split(new string[] { "\\" }, StringSplitOptions.RemoveEmptyEntries);
string username = tmp[1];
string domain = tmp[0];
string password = ConvertSecurityStringToString(credentials.Password);
SsoIdentity wi = new SsoIdentity(username, password, domain);
return wi;
}
catch (SingleSignonCredsNotFoundException ex)
{
}
catch (SingleSignonException ex)
{
}
return null;
}
Solução
Então, aparentemente o problema era que eu estava representando o usuário eu estava começando a partir da loja sso credencial. Mas quando eu desfazer isso, ele retorna para a identidade do pool de aplicativos e próximos GetCredentials tempo é chamada, ela LOKOS-se que o usuário no sso, e isso não é necessariamente um membro da aplicação sso.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow