使用 WCF 和 DefaultCredentials 时如何处理密码更改?
Posted
技术标签:
【中文标题】使用 WCF 和 DefaultCredentials 时如何处理密码更改?【英文标题】:How do you handle a Password Change when using WCF and DefaultCredentials? 【发布时间】:2013-02-12 10:51:34 【问题描述】:我有一个使用 WCF 代理调用服务的客户端。凭据和其他功能正常工作,但如果用户更改了他们的域密码并重新启动应用程序,那么由于此错误,我无法调用该服务:
System.ServiceModel.Security.SecurityNegotiaionException
-> 服务器已拒绝客户端凭据。
System.Security.Authentication.InvalidCredentialException
-> 服务器已拒绝客户端凭据。
System.componentmodel.Win32Exception
-> 登录尝试失败。
显然我知道用户的凭据已更改,但如何刷新 CredentialCache
以反映新凭据以便 WCF 调用成功?
【问题讨论】:
via @Ryblex :“当您重新启动应用程序时,您是指 WCF 服务应用程序,包括 AppPool 吗?” [语法编辑] 【参考方案1】:服务根据 AD 检查客户端上下文中的令牌。当用户登录到他的 windows 帐户时,wcf 客户端使用它收到的现有 windows 令牌。如果您更改密码,Windows 会话仍会使用旧凭据运行。您必须登录和退出 Windows 会话才能更新缓存的凭据。
【讨论】:
以上是关于使用 WCF 和 DefaultCredentials 时如何处理密码更改?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用故障契约和 jquery ajax 处理 wcf 错误