我有一个简单的场景。在MyWebService
应用程序池的server
计算机上的IIS 7上的IIS 7上发布了一个ASP NET Web服务MyAppPool
,启用了Windows身份验证,提供者为Negotiate
和NTLM
(按此顺序)。在client
计算机上启动了一个客户端应用程序。这两台机器(服务器和客户端)都位于同一domain
中。
ApiController
中有一个方法,该方法由AuthorizeAttribute
装饰,并指定了Group
的名称。客户端应用程序使用HttpClient
发送请求,UseDefaultCredentials
设置为true
,客户端作为指定组中的用户登录。
当MyAppPool
的身份是ApplicationPoolIdentity
或LocalSystem
(或另一个内置帐户)或任何域帐户时,它们都可以使用。请求从客户端登录名到达服务器。我想使用具有特定权限的服务器本地帐户(出于安全原因)作为MyAppPool
的身份,但是在这种情况下,客户端会收到401 Unauthorized
错误。从服务器日志中我可以看到,匿名发送了哪些请求。所有不同之处在于应用程序池标识,所有其他设置相同。我尝试创建SPN,但找不到服务器本地帐户。
有什么办法可以解决服务器本地帐户的此问题?