2009-03-03 391 views
9

我正尝试在AD /域控制器的客户端网络中部署应用程序。Windows身份验证提示输入用户名/密码

我的应用程序是一个简单的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:

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> 

从我userstand的是,这是增加的时候,我可以从User.Identity.Name获取当前用户,用户名。

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

我错过了什么吗?

+0

你与测试什么浏览器?只有IE才能通过Windows用户名/密码认证。 – 2009-03-03 01:11:17

+1

这不一定正确 - FireFox支持Windows集成身份验证。 – 2009-03-03 04:36:21

+0

是的,火狐浏览器没有问题,它只是不会像IE那样将本地主机名视为受信任/内联网区域 - 但它确实可以配置为。甚至有一个现有的ADM模板用于FF我认为懒惰的系统管理员可以使用。 – 2009-03-22 20:51:34

回答

0

您的网站使用什么网址,以及什么是IE区域?如果您的应用程序在LocalIntranet区域之外运行,则传递身份验证被阻止,并始终提示用户/密码。

0

在IE的Internet选项中选择“启用Windows集成身份验证”?

您输入的IUSR_和用户名是否具有读取和执行权限到应用程序所在的目录?

该应用程序的目录驻留在IIS服务器上,还是位于共享上,Windows共享权限将起作用?

3

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

3

您在IIS中的配置不正确 - 关闭匿名访问,然后集成身份验证将启动,假设您已将其设置在您的网络中。通过

<configuration> 
    <system.web> 
     <authentication mode="Windows" /> 
    </system.web> 
</configuration> 
0

我认为你不能从服务器应用控制它的配置,它是浏览器的功能凭据传递,在IE浏览器可能会建议用户检查在Internet选项 - >高级“启用Windows集成身份验证”

0

您不想更改we.config文件中的任何配置。在站点身份验证的IS服务器管理器中,仅启用Windows身份验证并禁用其他身份验证。 enter image description here

Windows身份验证需要您的Windows身份验证来验证用户。这就是提示登录的原因。为了避免这种情况,您需要在客户端浏览器中将您的站点IP或域设置为可信的Intranet站点。 为此;

1)进入浏览器设置 - >打开代理设置 - >安全 - >本地Intranet - >站点 - >高级

2)然后添加你的网站域名或IP地址 enter image description here

现在看在清除浏览器缓存后,问题是否可以确定。

这个工作适合我。 :)

0

您不想更改we.config文件中的任何配置。在站点身份验证的IS服务器管理器中,仅启用Windows身份验证并禁用其他身份验证。 enter image description here

Windows身份验证需要您的Windows身份验证来验证用户。这就是提示登录的原因。为了避免这种情况,您需要在客户端浏览器中将您的站点IP或域设置为可信的Intranet站点。 为此;

1)进入浏览器设置 - >打开代理设置 - >安全 - >本地Intranet - >站点 - >高级

2)然后添加你的网站域名或IP地址 enter image description here

现在看在清除浏览器缓存后,问题是否可以确定。

这个工作适合我。 :)

入住这也 Receiving login prompt using integrated windows authentication

相关问题