我正在尝试使用AD /域控制器在客户端网络中部署应用程序。
我的应用程序是一个简单的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不输出当前用户名。
中所讨论的那样我补充说:
<authorization>
<deny users="?"/>
</authorization>
根据用户的意思,当添加此内容时,我可以从User.Identity.Name获取当前用户的用户名。
但是,一旦我添加了上述内容,浏览器现在会提示我输入用户名和密码。一旦我输入它,我就可以使用User.Identity.Name来获取用户名。但是我不希望弹出用户名/密码。我希望应用程序根据用户的网络凭据对用户进行身份验证。
我错过了什么吗?
答案 0 :(得分:3)
检查Internet Explorer是否知道该站点是本地Intranet区域的一部分。此外,在Intranet区域检查的设置下,启用了自动登录。
答案 1 :(得分:3)
您在IIS中的配置不正确 - 关闭匿名访问,然后集成身份验证将启动,假设您也已通过
在web.config中设置它<configuration>
<system.web>
<authentication mode="Windows" />
</system.web>
</configuration>
答案 2 :(得分:1)
您不想更改we.config文件中的任何配置。在站点身份验证中的IS服务器管理器中,仅启用Windows身份验证并禁用其他身份验证。 enter image description here
Windows身份验证需要您的= Windows凭据才能对用户进行身份验证。这是提示登录的原因。为避免这种情况,您需要在客户端浏览器中将站点IP或域设置为可信的Intranet站点。 为此;
1)转到浏览器设置 - &gt;打开代理设置 - &gt;安全 - &gt;本地内联网 - &gt;网站 - &gt;高级
2)然后添加您的站点域或IP地址 enter image description here
现在查看清除浏览器缓存后您的问题是否正常。
这项工作对我而言。 :)
也检查一下 Receiving login prompt using integrated windows authentication
答案 3 :(得分:0)
您的网站使用什么网址,以及IE区域是什么?如果您的应用程序在LocalIntranet区域之外运行,则会阻止直通身份验证,始终提示输入用户/密码。
答案 4 :(得分:0)
是否在IE的Internet选项中选择了“启用Windows集成身份验证”?
您输入的IUSR_和用户名是否都具有对托管应用程序的目录的“读取”和“执行”权限?
应用程序的目录是驻留在IIS服务器上,还是位于共享上,Windows共享权限将在何处发挥作用?
答案 5 :(得分:0)
我认为您无法从服务器应用程序控制它,它是传递凭据的浏览器功能,在IE中您可能会建议您的用户在互联网选项中检查“启用Windows集成身份验证” - &gt;高级
答案 6 :(得分:0)
您不想更改we.config文件中的任何配置。在站点身份验证中的IS服务器管理器中,仅启用Windows身份验证并禁用其他身份验证。 enter image description here
Windows身份验证需要您的= Windows凭据才能对用户进行身份验证。这是提示登录的原因。为避免这种情况,您需要在客户端浏览器中将站点IP或域设置为可信的Intranet站点。 为此;
1)转到浏览器设置 - &gt;打开代理设置 - &gt;安全 - &gt;本地内联网 - &gt;网站 - &gt;高级
2)然后添加您的站点域或IP地址 enter image description here
现在查看清除浏览器缓存后您的问题是否正常。
这项工作对我而言。 :)