我们有一个 WCF(Windows Communication Foundation)客户端和服务应用程序。我们正在使用带有 Kerberos 的 Windows 身份验证。
问题是该服务可能在许多帐户之一下运行(可能是网络服务,也可能是特定用户帐户——取决于 IT 组)。此帐户不可能每天更改,但可能偶尔更改(可能每隔几个月)。此外,我们将此客户端/服务包提供给多个组,每个组可能有自己的帐户用于运行服务(这只是为了让您知道我们不能为单个团队提供自定义解决方案)。
现在上一段出现问题的原因显然是如果服务没有在 SYSTEM 或 NETWORK SERVICE 帐户(即用户帐户)中运行,则客户端必须在其端点的身份中指定用户帐户的名称。
有关此限制的更多信息,请参阅: http ://social.msdn.microsoft.com/Forums/en-US/wcf/thread/feb6bc31-9a4b-4f8d-a887-ef6d2c7abe41 和http://www.vistax64.com/indigo /146204-using-localhost-vs-environment-machinename.html
现在这似乎很难处理 IT 部门更改运行服务的帐户的情况。如果有的话,处理这个的模式是什么?其他人是如何处理这个问题的?我想到的一个解决方案是,当服务的用户帐户发生更改时,管理员会发送一封电子邮件,其中包含指向更新客户端或配置文件的应用程序的网络链接,因此客户端引用新的用户帐户. 但这似乎很骇人听闻。
诚然,这很像端点移动的 URI。除了,我认为人们对更改 URI 是客户端必须知道的事情有更多的期望,但是更改运行服务的帐户对客户端来说应该是相对透明的。
顺便说一句,这需要托管在 IIS 7.0 上,如果这很重要的话。