2011-03-07 132 views
0

我刚刚遇到了在VS中使用集成开发服务器(卡西尼)的问题之一,并希望看看是否有任何解决方案。使用ASP.NET认证/授权与卡西尼开发服务器

我们使用asp.net身份验证来保护网站。但是,Cassini以集成管道模式运行,这意味着所有文件的请求都通过asp.net isapi。这样做的结果是,它保护的文件不会在生产环境中保护(.htm .js .css等)。

现在我明白我们可以在本地IIS实例上运行该项目,但如果可能的话,我们希望避免这种情况。但是,由于上述问题,这看起来像是唯一的解决方案。

有没有人有关于如何让Cassini使用身份验证的任何想法,可以在准备好时轻松移动到生产环境。 (我也想避免有一个不同的开发web.config,专门允许访问这些文件)。

我们正在使用VS2010。

非常感谢。

回答

0

您可以连接高达您的Global.asax或IHttpModuleHttpApplication.PostAuthenticateRequest事件IIS 7的所有核心功能,以及其他功能。 PostAuthenticateRequest event on MSDN

在事件处理程序中,检查文件扩展名,找到您想要解密的文件扩展名。如果文件扩展名匹配,则将HttpContext.User设置为IPrincipal实例,该实例具有访问指定目录中文件所需的角色。

+0

谢谢,我已将您的回答标记为答案,因为它似乎是一个合理的解决方案。但是,我们决定不使用它,而是采取了一切措施,并为所有开发人员设置了IIS。 – Martyn 2011-03-09 13:09:14

1

而不是使用卡西尼的,你可以下载并安装IIS Express

IIS Express是为开发人员优化IIS的一个轻量级的,自包含的版本。通过IIS Express,可以轻松使用最新版本的IIS来开发和测试网站。它旨在简化网站开发

+0

感谢Oded,如果我们决定离开卡西尼,那么我们可能会使用完整的IIS,因此Express并不适合。话虽如此,我并不十分了解它。 Express对于完整的IIS进行开发具有哪些优势?它允许编辑并继续吗? – Martyn 2011-03-07 12:01:04

+0

@Martyn - 我不知道编辑和继续,但怀疑它会是完全相同的IIS。它比IIS更轻量级,主要好处是你不需要像管理员那样运行VS来让webservices正常工作。 – Oded 2011-03-07 12:09:49