最近有个项目的需求是,假定在同一个Windows AD域里,使用域账号登陆的用户打开网页不需要二次登陆,域外用户打开网页需要使用AD域账号登陆。
我的工程是Asp.net MVC,我做了一个简单的Sample,在域环境里的IIS7.0机器上部署测试了一下,没有达到我预期的效果,网页不能打开、找不到网页,在网上查找资料,说是要部署成Classic经典管道模式,试了一下,报错提示网站功能需要Integrated集成管道模式,我又查找了一大堆资料,说是建议使用经典管道模式,于是我就在经典模式和集成模式之间反复折腾,几天都没搞定这个部署问题。
后来我觉得应该换一个思路,考虑到问题应该出在程序本身,而不是部署方式,我重新创建了一个项目,以便查看到底是什么程序使用了“集成管道模式”的功能,后来偶然间找到了问题的根源,在创建项目的一个不显眼的地方,有一个button "Chang Authentication",点击后选择“Windows Authentication”。
于是创建项目后,不再有Asp.net网站默认的Form身份认证的相关功能和页面,这时我才恍然大悟,问题就在这里!
我创建了一个简单的Sample程序,部署到IIS上,使用集成管道模式,问题解决!