SessionAuthenticationModule クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
WS-Federation シナリオのセッション クッキーを処理する ASP.NET モジュールを実装します。
public ref class SessionAuthenticationModule : System::IdentityModel::Services::HttpModuleBase
public class SessionAuthenticationModule : System.IdentityModel.Services.HttpModuleBase
type SessionAuthenticationModule = class
inherit HttpModuleBase
Public Class SessionAuthenticationModule
Inherits HttpModuleBase
- 継承
例
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
//SUBSCRIBE TO SAM EVENTS
FederatedAuthentication.SessionAuthenticationModule.SessionSecurityTokenCreated += new EventHandler<SessionSecurityTokenCreatedEventArgs>(SessionAuthenticationModule_SessionSecurityTokenCreated);
FederatedAuthentication.SessionAuthenticationModule.SessionSecurityTokenReceived += new EventHandler<SessionSecurityTokenReceivedEventArgs>(SessionAuthenticationModule_SessionSecurityTokenReceived);
FederatedAuthentication.SessionAuthenticationModule.SigningOut += new EventHandler<SigningOutEventArgs>(SessionAuthenticationModule_SigningOut);
FederatedAuthentication.SessionAuthenticationModule.SignedOut += new EventHandler(SessionAuthenticationModule_SignedOut);
FederatedAuthentication.SessionAuthenticationModule.SignOutError += new EventHandler<ErrorEventArgs>(SessionAuthenticationModule_SignOutError);
}
void SessionAuthenticationModule_SignOutError(object sender, ErrorEventArgs e)
{
System.Diagnostics.Trace.WriteLine("Handling SignOutError event");
}
void SessionAuthenticationModule_SignedOut(object sender, EventArgs e)
{
System.Diagnostics.Trace.WriteLine("Handling SignedOut event");
}
void SessionAuthenticationModule_SigningOut(object sender, SigningOutEventArgs e)
{
System.Diagnostics.Trace.WriteLine("Handling SigningOut event");
}
void SessionAuthenticationModule_SessionSecurityTokenReceived(object sender, SessionSecurityTokenReceivedEventArgs e)
{
System.Diagnostics.Trace.WriteLine("Handling SessionSecurityTokenReceived event");
}
void SessionAuthenticationModule_SessionSecurityTokenCreated(object sender, SessionSecurityTokenCreatedEventArgs e)
{
System.Diagnostics.Trace.WriteLine("Handling SessionSecurityTokenCreated event");
//Store session on the server-side token cache instead writing the whole token to the cookie.
//It may improve throughput but introduces server affinity that may affect scalability
FederatedAuthentication.SessionAuthenticationModule.IsReferenceMode = true;
}
次の XML は、ASP.NET パイプラインで SAM を構成する方法を示しています。 簡潔にするために、一般的な構成に存在する他の多くの要素はここでは省略されています。
<configuration>
<system.webServer>
<modules>
<!--WIF 4.5 modules -->
<add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="WsFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</modules>
</system.webServer>
</configuration>
注釈
ASP.NET パイプラインに存在する場合、 SessionAuthenticationModule (SAM) は、WS-Federation シナリオでセッション Cookie を処理します。 プロパティで指定された Cookie ハンドラーを CookieHandler 使用して、HTTP 要求から生セッション Cookie を読み取り、HTTP 応答に書き込みます。 アプリケーションが生セッション Cookie SessionSecurityToken をオブジェクトに逆シリアル化するように構成されている を使用SessionSecurityTokenHandlerします。 セッション セキュリティ トークンには、要求を処理するエンティティに関連付けられている要求 (Claim) とプリンシパル (ClaimsPrincipal) が含まれます。
SAM は、その OnAuthenticateRequest イベント ハンドラーを HttpApplication.AuthenticateRequest ASP.NET パイプラインのイベントに追加します。 このハンドラーはサインイン要求をインターセプトし、セッション Cookie がある場合はセッション トークンに逆シリアル化し、 プロパティと HttpContext.User プロパティをセッション トークンに含まれる要求プリンシパルに設定Thread.CurrentPrincipalします。 このプロセス中に SAM によって公開される他のいくつかのメソッドを呼び出します。
メソッドを SignOut 呼び出して、ユーザーをセッションからサインアウトできます (たとえば、SignOut.aspx.cs分離コード ファイル内)。
SAM は、処理パイプラインへのアクセスを提供するいくつかのイベントを公開します。 SessionSecurityTokenReceivedイベントと SessionSecurityTokenCreated イベントを使用すると、Cookie から読み取られたり、処理中に作成されたセッション トークンを変更したりできます。 通常、これはトークン内の要求を追加、削除、または変換したり、有効期限を調整したりするために行われます。 、SignedOut、および SignOutError イベントはSigningOut、サインアウト要求の処理にフックを提供します。 多くのシナリオでは、多くの場合、これらのイベントのハンドラーをglobal.asax.cs ファイルに追加するだけで十分です。
より複雑なシナリオでは、 から SessionAuthenticationModule 派生してカスタム SAM を実装できます。 このため、セッション処理ライフサイクルの特定の段階でカスタム動作を提供できるように、 および の間にOnAuthenticateRequestSignOut呼び出されるメソッドの多くが公開されます。
構成ファイルの ASP.NET パイプラインに SAM を追加するには、IIS バージョン 7 以降の 要素の下 <system.webServer>
、または IIS 7 より前のバージョンの 要素の下 <system.web>
にある HTTP モジュールに SAM を追加します。 SAM で使用される Cookie ハンドラーは、cookieHandler> 要素を使用して<構成できます。
コンストラクター
SessionAuthenticationModule() |
SessionAuthenticationModule クラスの新しいインスタンスを初期化します。 |
プロパティ
ContextSessionSecurityToken |
現在の SessionSecurityToken のアクティブな HttpContext を取得します。 |
CookieHandler |
セッション クッキーの読み取り、書き込み、および削除に使用されるクッキー ハンドラーを取得します。 |
FederationConfiguration |
現在のモジュールに対して有効な FederationConfiguration オブジェクトを取得または設定します。 (継承元 HttpModuleBase) |
IsReferenceMode |
セッション情報 (クレーム値など) をセッション クッキーに保存するか、またはセッションの内容を、クッキーを使用して参照だけを保存することにより、サーバー側で保存するかを指定する値を取得または設定します。 |
メソッド
イベント
SessionSecurityTokenCreated |
セッション セキュリティ トークンが作成されたときに発生します。 |
SessionSecurityTokenReceived |
クッキーからセッション セキュリティ トークンを読み込んだときに発生します。 |
SignedOut |
ユーザーがサインアウトした後に発生します。 |
SigningOut |
サインイン セッションを削除する前に発生します。 |
SignOutError |
サインアウト中にエラーが発生したときに発生します。 |
適用対象
.NET