0

内部サイトに Orchard を使用することを検討しています。

現在、初期認証にShibbolethを使用しています。これにより、次の形式でサイトに POST が返されます。http://domain/Shibboleth.sso/{stuff}

現在の ASP.NET MVC Web サイトでは、Global.asax を次のように変更するだけで済みました。

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

残念ながら、Orchard ではその方法が許可されていないため、いくつかの調査の結果、ハンドラーを追加する必要があるようです。

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" />

これのいくつかの異なるバリエーションを試しましたが、まだダイスはありません。

とにかくソースをプルダウンしたので、2 つのroutes.IgnoreRoute呼び出しを追加して再ビルドするだけの単純なルートを試してみましたが、同じ問題が発生します。

Shib の要件を削除すると、Orchard は正常に起動し、Shib をオンにして新しい MVC プロジェクトを作成すると (さらに 2 つの IgnoreRoute 呼び出しを追加すると)、これも正常に動作します。

ブラウザーは 404 (空白のページ) を返しているので、Orchard がまだ要求を取得しているように感じます。

Orchard にこのパスをスキップさせる方法について何か提案はありますか?

4

1 に答える 1

1

私は結局2つのことをしました。

まず、Not Found MVC をテンプレートとして使用して新しいモジュールを作成しました。具体的には、InstallerModule コードです。

system.web > httpModules に以下を追加しました。

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

system.webServer > modules にも同じものを追加しました。

コードが行ったのは、無視ルートに追加したことだけです。

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

私が本当に近づいていた最後のステップ。の直後に、system.webServer > handlers の下に次を追加しました<clear />

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

前回は必要ありませんでしたが、オーチャードが行っていることには必要なようです。

于 2013-05-10T20:05:36.340 に答える