我正在尝试使用 C# 在 ASP.NET 中构建一个简单的 Web 应用程序。此应用程序的目的是获取用户 Windows 帐户登录的 guid。
预期效果是用户在他或她自己的 Windows 机器上尝试登录到该站点。服务器查看用户的凭据,并为他或她自己的网络上的 Windows 登录拉取 guid。然后根据数据库检查 guid,如果它与我们之前存储的匹配,我们对它们进行身份验证并重定向。我遇到的问题是,我尝试获取的任何凭据(如果我什至可以获得任何凭据)始终是服务器的凭据,而不是远程用户的凭据。
在 中web.config
,我尝试过设置authentication mode = "windows"
、拒绝匿名用户和设置identity impersonate="true"
. 我也尝试了这些的许多排列。
既没有HTTPContext
也没有 User.Identity
返回任何东西。WindowsIdentity.GetCurrent()
以及任何通过System.Security.Principal
返回服务器的凭据。
但是,这确实适用于我的localhost
. 每当我将它发布到外部 IIS 服务器时,它都会失败。
我想要做的就是获取远程用户 Windows 登录的 guid。甚至有可能这样做吗?如果是这样,任何为我指明正确方向的帮助将不胜感激。
谢谢!