我刚刚遇到在VS中使用集成开发服务器(Cassini)的问题之一,并希望看看是否有任何解决方案。
我们正在使用asp.net身份验证来保护网站。但是,Cassini以集成管道模式运行,这意味着对所有文件的请求都通过asp.net isapi。这样做的结果是它保护了在生产环境中无法保护的文件(.htm .js .css等...)。
现在我知道我们可以在本地IIS实例上运行该项目,但我们希望尽可能避免这种情况。但是,由于上述问题,这看起来是唯一的解决方案。
是否有任何人对如何让Cassini使用身份验证有任何想法,这些身份验证可以在准备就绪后轻松转移到生产环境中。 (我还想避免使用不同的开发web.config,专门允许访问这些文件)。
顺便说一句,我们正在使用VS2010。
非常感谢。
答案 0 :(得分:1)
您可以下载并安装IIS Express:
,而不是使用CassiniIIS Express是为开发人员优化的轻量级自包含IIS版本。 IIS Express可以轻松使用最新版本的IIS来开发和测试网站。它具有IIS 7的所有核心功能以及旨在简化网站开发的其他功能
答案 1 :(得分:0)
您可以连接到global.asax或HttpApplication.PostAuthenticateRequest
中的IHttpModule
事件。 PostAuthenticateRequest event on MSDN
在事件处理程序中,检查要取消安全保护的文件扩展名。如果文件扩展名匹配,则将HttpContext.User
设置为IPrincipal
实例,该实例具有访问指定目录中的文件所需的角色。