C# asp.net - 在部署服务器上获取 Windows 用户登录帐户

标签 c# asp.net

我正在使用 C# asp.net 获取 Windows 登录帐户(域\用户名)以自动登录我的网站。在 visual studio 上本地运行语句“System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString()”时,我可以正确获取帐户。但是,部署网页部署服务器后,返回“NT AUTHORITY\IUSR”。

我在互联网上找到的大多数解决方案都是使用 Windows 身份验证而不是匿名身份验证。我试过这个解决方案,运行 web 时会提示用户登录窗口。它需要输入已部署服务器的用户名和密码。但是,我的 windows 用户登录帐户无法登录到部署服务器。因此我无法在我的计算机上运行网络。

我想知道如果我的window账号无法登录部署服务器,是否可以获取window用户登录账号?

最佳答案

请尝试启用两种身份验证方法。首先,您必须像您已经提到的那样启用 Windows 身份验证,以将您的凭据自动传递到服务器(当然只在 Intranet 中)。
此外,您必须激活 ASP.NET 模拟 以允许服务器使用传递的凭据。
帮助告诉您原因:

Use ASP.NET Impersonation authentication when you want to run your ASP.NET application under a security context different from the default.

在您的 web.config 中,您必须将以下节点添加到您的 system.web 节点以告诉您的应用程序将您的凭据传递给服务器:

<identity impersonate="true"/>
<authentication mode="Windows" />

关于C# asp.net - 在部署服务器上获取 Windows 用户登录帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29071199/

相关文章:

C# Xml 序列化 List<T> 具有 Xml 属性的后代

C#:获取列表中出现次数最多的元素?

c# - 通过反射获取 String.Trim 的 MethodInfo?

asp.net - 刷新/重新绑定(bind)一个下拉列表 asp.net MVC

asp.net - css to checkboxlist控件在asp.net的 Accordion 菜单中

html - 如何在 Razor CheckBoxFor() 中设置 Bootstrap 复选框

c# - 使用 Entity Framework 时在哪里指定业务规则

c# - 在本地访问 Azure Key Vault 'secrets' 以获取环境变量 - C#

asp.net - 无法在 Ubuntu 中使用 FlatPak 获取 Monodevelop 以运行 ASP.NET 站点

c# - 如何在刷新页面时使用asp.net定时器控件将div标签中的向下滚动条设置为垂直滚动条