asp.net - Windows 身份验证提示输入用户名/密码

标签 asp.net windows security authentication

我正在尝试使用 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 不输出当前用户名。

如本文所述http://weblogs.asp.net/scottgu/archive/2006/07/12/Recipe_3A00_-Enabling-Windows-Authentication-within-an-Intranet-ASP.NET-Web-application.aspx

我补充说:

<authorization>
    <deny users="?"/>
</authorization>

从我的用户立场来看,添加后,我可以从 User.Identity.Name 获取当前用户和用户名。

但是,一旦我添加了上述内容,浏览器现在会提示我输入用户名和密码。输入后,我就可以使用 User.Identity.Name 来获取用户名。但是我不想弹出用户名/密码。我希望应用程序根据用户的网络凭据对用户进行身份验证。

我错过了什么吗?

最佳答案

检查 Internet Explorer 是否知道该站点是本地 Intranet 区域的一部分。此外,在 Intranet 区域的设置下检查是否启用了自动登录。

关于asp.net - Windows 身份验证提示输入用户名/密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/604718/

相关文章:

asp.net - 自定义 ASP.Net DataPager 生成的 HTML

c# - 使用 WMI ManagementObjectSearcher 缺少指令或程序集引用?

c# - 在 C# 和 .Net Core 中设置鼠标位置

node.js - Electron 作为 Web 浏览器的安全影响

ruby-on-rails - 防止垃圾邮件机器人攻击 Rails 应用程序

asp.net - 如何限制对ASP.NET中具有特定扩展名的文件的访问?

c# - 如何使用表而不是 gridview?

c# - 在网站的 bin 文件夹中包含 csc.exe 的安全问题

c# - DropDownList如何设置DataSource

windows - 如何找到线程本地存储的开始和结束?