是否可以在没有在 IIS 中启用 Windows 身份验证的情况下获取用户的 Windows 凭据(即用户名)?禁用 Windows 身份验证后,以下代码将返回 NT AUTHORITY 或 IIS APPPOOL\ASP.NET v4.0,具体取决于是否启用了模拟和匿名身份验证。
System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();
我正在将使用表单身份验证的 asp.net Web 应用程序转换为自定义身份验证。基本上,如果用户从网络外部连接,我会强制进行凭据检查,而如果他们从网络内部连接,我希望能够获取他们的 Windows 用户名。当我打开 Windows 身份验证时,内部部分可以工作,但在网络外部进行测试时会弹出登录框。我要么需要为非本地连接禁用 windows 身份验证,要么弄清楚如何在禁用 windows 身份验证的情况下获取 windows 用户名。有什么建议么?(我想到的另一种选择是将应用程序一分为二,并为每个应用程序设置单独的身份验证模式,但我想避免这种情况)。
- 我也试过:
System.Web.HttpContext.Current.User.Identity.ToString();
System.Threading.Thread.CurrentPrincipal.ToString();