以下代码用于自定义WebPart,由于某种原因,它仅在第一次在页面上执行时才起作用。之后它会抛出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;
}
有帮助吗?

解决方案

显然问题是我冒充了我从sso凭证商店获得的用户。但是当我撤消它时,它返回到应用程序池的标识,并且下次调用GetCredentials时,它会在sso中向该用户提供lokos,并且这不一定是sso应用程序的成员。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top