2012-03-14 89 views
1

我刚刚开始学习ASP.NET。我打开了一个默认的ASP.NET应用程序,并更改了web.config文件以启用Windows身份验证。在IIS 7.5中未启用Windows身份验证

<authentication mode="Windows"> 
</authentication> 

当我使用asp.net开发服务器从VS运行,它能够检测到我的Windows登录并显示它。 我试图将它发布到同一台PC上的IIS服务器7.5并从那里运行。现在我的Windows登录没有被检测到。 我已经从IIS中的身份验证功能启用了Windows身份验证。 在这种情况下我可能会错过什么?

谢谢..

+0

您需要在IIS中设置您的站点以使用Windows身份验证:http://technet.microsoft.com/en-us/library/cc754628(v=ws.10 ).aspx – 2012-03-14 13:36:00

回答

4

尝试在IIS 7.5中为该网站禁用匿名身份验证。

  • 打开IIS控制台。
  • 选择网站。
  • 双击“身份验证”
  • 确保“匿名身份验证”已禁用

只有“Windows身份验证”应该为你的目的实现。

这部作品的原因是,浏览器会以匿名方式进行的第一次请求。如果启用匿名身份验证,则此请求将成功,因此Web服务器将不知道您是谁。

如果您使用像Fiddler这样的工具来检查您和服务器之间的网络流量,您将注意到,如果Windows身份验证是唯一配置的方法,您实际上会获得3个请求。请求得到以下回应:

  • 请求1:“请允许我匿名登录?”
  • 回应1:“NO !!!” [HTTP状态代码401]
  • 请求2:“好的,你支持什么?”
  • 响应2: “我支持Windows身份验证”[HTTP状态码401]
  • 请求3: “好了 - 这是我的Windows令牌”
  • 回应3:“嗨,RB,这里是你的网页“[HTTP状态代码200]
+0

工作正常!我不明白这是如何改变的? – Manoj 2012-03-14 13:42:28

+0

@Manoj - 我已经更新了我的答案,并说明了它有所作为的原因。 – 2012-03-14 13:49:02

+0

能看到小提琴手中的相关数据包!感谢您的详细解答! – Manoj 2012-03-14 13:58:54

相关问题