如何解决与AD用户连接到Exchange单点登录
目前,我有一个带有用户名(logonParamters.Username)和密码(logonParameters.Password)字段的登录表单。 下面的代码工作正常,但前提是我具有连接到Exchange的密码。但是我们想使用“单一登录”,如果这样做,我们没有正确的密码吗?但是EWS需要一个用户名,密码和域。那么如何使用SSO连接到Exchange?
var domain = logonParameters.UserName.Split('\\').First();
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain,domain))
{
// validate the credentials
var username = logonParameters.UserName.Split('\\').Last();
bool isValid = pc.ValidateCredentials(username,logonParameters.Password);
if (!isValid)
{
//throw exception
}
using (UserPrincipal up = UserPrincipal.FindByIdentity(pc,IdentityType.SamAccountName,username))
{
//Connect to ExchangeWebService with those AD Credentials.
}
}
解决方法
在EWS托管API(或WSDL代理)中,您可以使用当前的安全上下文(例如,登录的用户凭据),例如
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2016);
service.UseDefaultCredentials = true;
这意味着要使其在模拟环境中运行,并在可能的情况下依靠kerberos进行身份验证。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。