c# - 如何获取当前的 Windows 用户名并禁用凭据提示?

标签 c# asp.net windows iis

我有一个 C#.NET 4.0 应用程序在带有 IIS7 服务器的 Windows Server 2008 上的 IIS 7 下运行。该应用程序将在公司内部网中运行,它会自动获取查看页面的用户的登录 Windows 用户名,而不会在页面加载时提示输入凭据。现在我面临两个问题:

1) 目前,应用程序返回应用程序所在的生产服务器名称(例如:XYZ\sam)。我想获取当前登录的用户名(例如:ABC\sam)。它在本地主机上运行良好,但在生产服务器上运行不正常。

我已经启用了 <authentication mode="Windows" />在 web.config 中,启用 Windows 身份验证并在 IIS 中禁用匿名身份验证。

我试过了 Page.User.Identity.Name , System.Web.HttpContext.Current.User.Identity.Name , System.Security.Principal.WindowsIdentity.GetCurrent().Name , 和其他人但仍未能获得正确的名称。如何获取当前windows登录用户?

2) 当我想访问该应用程序时,它不断提示输入用户名和密码的窗口。如果我忽略它,它会提示出来

401 - Unauthorized: Access is denied due to invalid credentials. You do not have permission to view this directory or page using the credentials that you supplied.

我该如何解决?

最佳答案

对于问题1,它无法检索到登录用户名,因为服务器是域服务器。它在从工作组转移到域后工作。

对于问题 2,如果我使用服务器名称(例如:servername/appsname)访问,它工作正常(没有弹出凭据)。但如果我使用 ip(例如:xxx.xx.xx.x/appsname)并且没有设置工具 internet 选项,它会要求提供凭据。因素仍然未知。

关于c# - 如何获取当前的 Windows 用户名并禁用凭据提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19827500/

相关文章:

c# - 用于常见媒体播放器功能的 Windows API?

c++ - 如何处理缺少 msvcp100.dll、msvcp100.dll 等 dll?

windows - Windows 中的 Clojure REPL

asp.net - 多层 Web 应用程序和多层 Web 应用程序有什么区别?

asp.net - ExpectedResponseUrl 错误是 Visual Studio 2010 web 性能测试

c# - 我如何从 asp.net 页面运行任何 win.exe?

c# - Windows 7中的捕获删除操作(首选)

c# - 为什么我的 WPF 单选按钮没有与中心垂直对齐?

c# - 如何使用 C# 从 Sharepoint 中的多行文本字段中获取文本值

c# - 数据 GridView C# 背后的正确逻辑