【发布时间】:2013-11-18 14:24:18
【问题描述】:
我有一个 C#.NET 4.0 应用程序在带有 IIS7 服务器的 Windows Server 2008 上的 IIS 7 下运行。该应用程序将在公司 Intranet 中运行,该应用程序会自动获取查看该页面的人的登录 Windows 用户名,而不会在页面加载时提示输入凭据。现在我面临两个问题:
1) 目前,应用程序返回应用程序所在的生产服务器名称(例如:XYZ\sam)。我想获取当前登录的用户名(例如:ABC\sam)。它在本地主机上运行良好,但在生产服务器上却不行。
我在 web.config 中启用了<authentication mode="Windows" />,在 IIS 中启用了 Windows 身份验证并禁用了匿名身份验证。
我尝试了Page.User.Identity.Name、System.Web.HttpContext.Current.User.Identity.Name、System.Security.Principal.WindowsIdentity.GetCurrent().Name 等,但仍然未能获得正确的名称。如何获取当前windows登录用户?
2) 当我想访问应用程序时,它不断提示输入用户名和密码的窗口。如果我忽略它,它会提示出来
401 - 未经授权:由于凭据无效,访问被拒绝。你 无权查看此目录或页面,使用 您提供的凭据。
我将如何解决它?
【问题讨论】:
-
System.Net.CredentialCache.DefaultNetworkCredentials?
-
@Sudhakar 感谢您的回复。你能详细解释一下吗?