問題タブ [owin-middleware]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
646 参照

asp.net-web-api - OWIN - 無効な WSFederation Cookie をクリアする

ADFS Cookie 認証を使用して ASP.Net Web API 2 プロジェクトを実装し、IIS でホストしました。すべて正常に動作します。

ただし、一部のクライアントは、構成の変更により無効になった古い Cookie を取得しています。このような Cookie は、API を呼び出すときに次のエラーを引き起こします。

明らかな回避策は、Cookie をクリアすることです。ただし、今後またクッキーの設定を変更する可能性が高いので、無効なクッキーはすべて API から自動的にクリアしたいと考えています。

カスタム OWIN ミドルウェアを追加してオーバーライドしようとしましたIExceptionHandler

これが私のWIF設定です:

これが私のStartupクラスです:

との中身CryptographicExceptionHandlerに関係ClearInvalidCookiesMiddlewareなく、それらのコードは呼び出されず、500 エラーが発生します。ClearInvalidCookiesMiddleware私も前に動かしてみましたUseWebApi

私の目的は、応答ヘッダーを追加Set-Cookieして無効な Cookie をクリアし、401 またはリダイレクトを返すことです。

この場合、OWIN で応答をカスタマイズするにはどうすればよいですか?

0 投票する
1 に答える
945 参照

asp.net-mvc - リクエストごとに OWIN ミドルウェアを作成する方法

CSP応答ヘッダーにヘッダー (コンテンツ セキュリティ ポリシー)を追加するカスタム owin ミドルウェアを実装しています。が機能するにはCSP、ミドルウェアがリクエストごとに一意の nonce 値を作成する必要があります。だから私はNonceServiceナンス値を作成するものを持っています。カスタム OWIN ミドルウェアは、NonceService に依存しています。

ただし、私の問題は、リクエストごとにカスタム ミドルウェアを登録できないことです。

デバッグすると、OWIN がリクエストごとにカスタム ミドルウェアの新しいインスタンスを作成していないことに気付きました。そのため、同じナンス値がすべてのリクエストに使用されています。

以下は私のコードです

ナンスサービス

OWIN ミドルウェアと拡張機能

私はコンテナとしてUnityを使用しているので、INonceServiceを使用して登録しますPerRequestLifetimeManager

カスタム ミドルウェアを startup.cs の OWIN に登録します。

注: リクエストごとに OWIN ミドルウェアを作成できない場合、少なくともリクエストごとに NonceService の新しいインスタンスをミドルウェアに渡す方法を教えてください。