Не удается получить учетные данные единого входа с помощью кода в SharePoint

Следующий код используется в пользовательской веб-части и по какой-то причине работает только при первом выполнении на странице. После этого выбрасывается исключение SingleSignonCredsNotFoundException.

Любая помощь или предложения о том, как решить эту проблему, очень ценятся.

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;
}

person mortenbpost    schedule 16.06.2009    source источник


Ответы (1)


Итак, очевидно, проблема заключалась в том, что я выдавал себя за пользователя, которого я получал из хранилища учетных данных sso. Но когда я отменяю это, он возвращается к удостоверению пула приложений, и в следующий раз, когда GetCredentials вызывается, он локирует этого пользователя в sso, и он не обязательно является членом приложения sso.

person mortenbpost    schedule 18.06.2009