Siteminder SSO不保护ASP.NET MVC站点

时间:2011-02-01 20:40:56

标签: asp.net-mvc-2 iis-7 single-sign-on siteminder

我在IIS7上安装了站点管理器,我在服务器上运行ASP.NET站点。 Site minder SSO似乎无法保护ASP.NET MVC请求。似乎所有ASP.NET请求都由ASP.NET isapi过滤器处理,这会阻止Siteminder isapi过滤器运行。如何使siteminder SSO工作以保护我的ASP.NET MVC站点?有没有办法在ASP isapi过滤器之前加载Siteminder SSO的isapi过滤器?

4 个答案:

答案 0 :(得分:2)

我们的解决方案是在 web.config 文件中按顺序列出SiteMinder Web代理ISAPI处理程序,然后是MVC ISAPI处理程序。

我发布了代码片段here

答案 1 :(得分:1)

您是否尝试在IIS中订购ISAPI过滤器?我没有使用Win2008 IIS7,但在Windows 2003中,SiteMinder代理安装程序重新排序过滤器。您应该能够在IIS管理器中检查它并重新排序。 SiteMinder过滤器应位于顶部。

答案 2 :(得分:0)

我的MVC-2网站遇到了同样的问题,因为虚拟文件夹受了siteminder的保护。

最后弄清楚问题是什么。

将应用程序池模式从Integrated更改为Classic,瞧!问题解决了。

答案 3 :(得分:0)

我们在IIS7上遇到了与MVC3相同的问题,我们需要使用集成模式。我们的解决方案是使用组合IHttpModule和Handler(.axd),但它现在是不必要的,因为新版本的siteminder有IIS7WebAgent.dll,它是一个集成的MODULE而不是ISAPI过滤器(ISAPI6WebAgent.dll)。我测试了这个并确认了它的工作,它能够保护我们所有的MVC网址,我们还可以读取由siteminder创建的HTTP Header,例如来自MVC管道的SM_USER。

我测试的siteminder版本是R12 SP 3.如果您打算使用IIS7WebAgent.dll,则需要删除“Handler Mappings”,“ISAPI& CGI Restrictions”和“ISAPI Filter”上ISAPI6WebAgent.dll的所有问题。在IIS上,以确保它不复杂。