我正在尝试使用 AD/域 Controller 在客户端网络中部署应用程序。
我的应用程序是一个简单的 asp.net c# 应用程序,使用 Windows 身份验证。
我用的是win2003。
基本上,使用VS2008,新建一个网站,托管在IIS6.0上。
只有 2 个变化。
1. 在应用程序的 IIS 目录安全上,启用“集成安全”。
注意:也启用了匿名。
仅对生成的骨架代码进行了一次更改。 在default.aspx的page_load方法中添加如下内容
using System.Security.Principal;
...
protected void Page_Load(object sender, EventArgs e)
{
WindowsIdentity id = WindowsIdentity.GetCurrent();
Response.Write("<B>Windows Identity Check</B><br>");
Response.Write("Name: " + id.Name + "<br>");
Response.Write("<BR>");
Response.Write("User.Identity: " + User.Identity.Name);
Response.Write("<BR>");
}
浏览页面的输出: Windows 身份检查 - 名称: NT AUTHORITY\NETWORK SERVICE 用户身份:
User.Identity.Name 不输出当前用户名。
我补充说:
<authorization>
<deny users="?"/>
</authorization>
从我的用户立场来看,添加后,我可以从 User.Identity.Name 获取当前用户和用户名。
但是,一旦我添加了上述内容,浏览器现在会提示我输入用户名和密码。输入后,我就可以使用 User.Identity.Name 来获取用户名。但是我不想弹出用户名/密码。我希望应用程序根据用户的网络凭据对用户进行身份验证。
我错过了什么吗?
最佳答案
检查 Internet Explorer 是否知道该站点是本地 Intranet 区域的一部分。此外,在 Intranet 区域的设置下检查是否启用了自动登录。
关于asp.net - Windows 身份验证提示输入用户名/密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/604718/