Pregunta

El siguiente código se usa en una WebPart personalizada y, por alguna razón, solo funciona la primera vez que se ejecuta en una página. Después de eso, lanza una excepción SingleSignonCredsNotFoundException

Cualquier ayuda o sugerencia sobre cómo resolver este problema es muy 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;
}
¿Fue útil?

Solución

Aparentemente, el problema era que me estaba haciendo pasar por el usuario que recibía de la tienda de credenciales sso. Pero cuando deshago esto, vuelve a la identidad del grupo de aplicaciones y la próxima vez, GetCredentials se llama lokos hasta ese usuario en el sso, y eso no es necesariamente un miembro de la aplicación sso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top