出于 IP 原因,我需要将网站作为服务帐户运行,我还希望能够使用 AzMan 对用户进行身份验证/身份验证。出于某种原因,我似乎无法让这些一起工作。我已经设置了一个示例应用程序来测试基本上会吐出一些用户凭据的水域。除了 Azman 和 Web 配置设置之外,该应用程序没有集成代码(没有日志记录/DB/Webserice 交互),它是一个寻呼机。
在拒绝匿名访问的网络服务帐户下运行应用程序池,我得到:
Windows Identity Check - Name: 'NT AUTHORITY\NETWORK SERVICE'
Request.LogonUserIdentity.Name = 'CT\rhyc'
HttpContext.User.Identity.Name = 'CT\rhyc'
User.Identity.Name = 'CT\rhyc'
Is in UserRole = 'True'
..这一切都很好,一切正常,但是服务帐户是网络服务而不是我应该使用的服务帐户。如果我将帐户切换到服务帐户,我会弹出窗口询问用户凭据(我不想要,它应该是单点登录);但是我在之前的设置中获得了这些凭据(ct/rhyc)
网站上有一个 setspn 命令运行(显然),但我真的不知道 spn 做了什么,更不用说知道如何检查它了。此外,如果我允许匿名访问运行服务帐户的应用程序池,我会得到:
Windows Identity Check - Name: 'CT\SVC-PERAT2-T2DEV'
Request.LogonUserIdentity.Name = 'PERAT2NTAH3WD1\CVX_IUSR'
HttpContext.User.Identity.Name = ''
User.Identity.Name = ''
Is in UserRole = 'False'
对不起,伙计们,我和 IIS n00b,这通常不是我会做的事情,但是我们的管理员似乎对 IIS 不太了解,所以留给我.. :(