最近、既存の Web アプリケーションでクレームベース認証を使い始めました。すべてがうまく機能しますが、SessionSecurity トークンの有効期限をより適切に処理するために、スライド有効期限を採用したいと考えています。
ただし、SecurityTokenReceived イベントのイベント ハンドラーを登録するのに問題があります。
私のハンドラー メソッドは、Global.asax.cs で次のように定義されています。
protected void SessionAuthenticationModule_SessionSecurityTokenReceived(object sender, SessionSecurityTokenReceivedEventArgs e) { ... }
しかし、このハンドラ メソッドを同じファイルの Application_Start に登録すると、次のようになります。
FederatedAuthentication.WSFederationAuthenticationModule.SecurityTokenReceived += SessionAuthenticationModule_SessionSecurityTokenReceived;
Visual Studio は、デリゲート System.EventHandler に一致する SessionAuthenticationModule_SessionSecurityTokenReceived のオーバーロードが存在しないことを応答します。
web.config のセクションに次の設定があります。
<securityTokenHandlers>
<add type="Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sessionTokenRequirement lifetime="0:02" />
</add>
</securityTokenHandlers>
MSDN で入手可能なドキュメントをいくつか読みましたが、イベント ハンドラーが受け入れられない理由がわかりません。誰でも助けてもらえますか?