我想知道在web.config中设置<authentication mode="windows">
的效果是在不同版本的IIS中。
我相信在IIS 5中,它几乎没有任何影响,因为所有这些都是由Web服务器集成和控制的。
在IIS 6和7上,我相信我可以将Web服务器设置为匿名访问,然后每个托管的Web应用程序可以通过设置模式来确定是否要使用Windows身份验证。也就是说,web.config控制这些IIS版本中的ASP.NET并覆盖服务器。
我正在寻找一份白皮书或某种类型的参考资料,而不仅仅是我的观察经验
答案 0 :(得分:0)
据我所知,在安全性方面,5到6之间几乎没有变化。但是,IIS 7是一项重大改进,与IIS 6有很大不同(但是,IIS 7允许您以“兼容性”模式运行,这样您的应用程序的行为几乎与它们在IIS 5和6下的行为完全相同)。
有一些有用的文章可能有所帮助:
答案 1 :(得分:0)
IIS 5也已过时(Windows XP将在明年死亡)。关于它的进一步细节几乎没有价值,尽管你的理解在我记忆中是不正确的。
仅此设置仅确定ASP.NET框架如何解释IIS传递的本机用户令牌(因为IIS使用其身份验证提供程序执行身份验证)。因此,对于IIS 6/7/8,当您在ASP.NET端设置它时,您需要仔细检查IIS端的相应设置是什么。
例如,当IIS端使用匿名/(集成)Windows / Basic / Digest身份验证时,不同类型的用户令牌将传递给ASP.NET。
http://msdn.microsoft.com/en-us/library/907hb5w9(v=vs.100).aspx
因此,你的理解 “我可以将Web服务器设置为匿名访问,然后每个托管的Web应用程序可以通过设置模式来确定是否要使用Windows身份验证”是错误的。如果您打算使用Windows身份验证来验证客户端,则必须在IIS端和ASP.NET端进行设置。从IIS 7开始,IIS管理器将这些设置放在同一个位置,但您仍需要完全了解它们之间的差异和关系。有关ASP.NET身份验证的详细信息,请参阅http://msdn.microsoft.com/en-us/library/eeyk640h(v=vs.100).aspx