我需要开发一个 Web 应用程序,用户有时需要使用不同的凭据执行操作(特别是他们是标准域用户,他们需要重置密码、解锁用户等)。我计划创建 2 个使用特权凭据运行的服务(通过使用 ASP.NET 模拟),以及一个用户访问和调用服务的 Web 门户(通过使用 Windows 身份验证)。
在开始实施之前,我正在测试凭证,但我有点困惑......如果我System.Security.Principal.WindowsIdentity.GetCurrent()
用来检查凭证,它在服务(DOMAIN\admin)中似乎是正确的,而在门户中是错误的(IIS\APPPOL\DefaultAppPool) ,而使用User.Identity.Name
在服务中返回错误的凭据(域\用户执行请求)但在门户中正确(域\用户执行请求)。
为什么不User.Identity.Name
总是返回“最终”凭证?似乎有点语无伦次......我错过了什么吗?