以下代码用于自定义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;
}
答案 0 :(得分:0)
显然问题是我冒充了我从sso凭证商店获得的用户。但是当我撤消它时,它返回到应用程序池的标识,并且下次调用GetCredentials时,它会在sso中向该用户提供lokos,并且这不一定是sso应用程序的成员。