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;
}
Foi útil?

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
scroll top