2013-05-08 121 views
0

我們正在考慮使用Orchard作爲內部網站。Orchard CMS和Shibboleth認證

我們目前使用Shibboleth爲初始認證,這使得回發到我們的網站在http://domain/Shibboleth.sso/{stuff}

格式在我們目前的ASP.NET MVC網站,我們需要的只是修改Global.asax中有以下:

routes.IgnoreRoute("Shibboleth.sso/{isapiInfo}/{isapiDetails}"); 
routes.IgnoreRoute("Shibboleth.sso/{*pathInfo}"); 

不幸的是,果園不允許我們走這條路,所以一些研究它看起來像它需要後要添加的處理程序。

通過IIS(Server 2008 R2中),這個加入到處理器組內的web.config文件:

<add name="Shib" path="*.sso" verb="*" modules="IsapiFilterModule" scriptProcessor="C:\{path}\isapi_shib.dll" resourceType="Either" requireAccess="Script" preCondition="integratedMode" /> 

我已經試過這幾個不同的變化,仍然沒有骰子。

因爲無論如何我都拉下了電源,我嘗試去添加兩個​​調用和重新構建的簡單路線,但這會導致相同的問題。

如果我刪除了Shib需求,那麼Orchard開始很好,如果我在Shib上添加一個新的MVC項目(以及我們的兩個IgnoreRoute調用),那也可以正常工作。

瀏覽器返回一個404(空白頁),所以我有一個果園仍抓住請求的感覺。

上我怎麼可能去獲得果園跳過這條道路有什麼建議?

回答

1

我最終做了兩件事。

首先,我創建了使用未找到MVC的模板創建一個新的模塊。特別是the InstallerModule code

我加入的System.Web以下>的HttpModules:

<add name="InstallerModule" type="IgnoreShibboleth.InstallerModule, IgnoreShibboleth" /> 

我還添加相同的到system.webServer>模塊。

所有的代碼都被添加在忽略路線。

routes.IgnoreRoute("Shibboleth.sso/{isapiInfo}/{isapiDetails}"); 
routes.IgnoreRoute("Shibboleth.sso/{*pathInfo}"); 

最後一步我真的很接近。我添加system.webServer在以下>處理程序,在<clear />後:

<add name="Shib" path="*.sso" verb="*" modules="IsapiModule" scriptProcessor="{path-to}\lib\shibboleth\isapi_shib.dll" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,bitness64" /> 

最後一次是在過去是不需要的,但似乎有必要對一些果園在做什麼。