FormsAuthenticationModule クラス

フォーム認証が有効な場合、ASP.NET アプリケーションに対してユーザーの ID を設定します。このクラスは継承できません。

名前空間: System.Web.Security
アセンブリ: System.Web (system.web.dll 内)

構文

'宣言
Public NotInheritable Class FormsAuthenticationModule
    Implements IHttpModule
'使用
Dim instance As FormsAuthenticationModule
public sealed class FormsAuthenticationModule : IHttpModule
public ref class FormsAuthenticationModule sealed : IHttpModule
public final class FormsAuthenticationModule implements IHttpModule
public final class FormsAuthenticationModule implements IHttpModule
適用できません。

解説

アプリケーションの構成ファイルの authentication 要素 (ASP.NET 設定スキーマ) 要素で認証 ModeForms に設定されている場合、FormsAuthenticationModule は、System.Web.HttpContext.User プロパティを、現在の要求に対するユーザー ID を表す IPrincipal オブジェクトに設定します。

FormsAuthenticationModuleAuthenticate イベントを公開します。このイベントにより、現在の HttpContextUser プロパティにカスタム IPrincipal オブジェクトを設定できます。Authenticate イベントには、ASP.NET アプリケーションの Global.asax ファイルに、FormsAuthentication_OnAuthenticate というサブルーチンを指定することによってアクセスします。

使用例

FormsAuthentication_OnAuthenticate イベントを使用して、現在の HttpContextUser プロパティにカスタム IPrincipal オブジェクトを設定するコード例を次に示します。

Public Sub FormsAuthentication_OnAuthenticate(sender As Object, _
                                              args As FormsAuthenticationEventArgs)
  If FormsAuthentication.CookiesSupported Then
    If Not Request.Cookies(FormsAuthentication.FormsCookieName) Is Nothing Then
      Try
        Dim ticket As FormsAuthenticationTicket = FormsAuthentication.Decrypt( _
          Request.Cookies(FormsAuthentication.FormsCookieName).Value)
        
        args.User = New System.Security.Principal.GenericPrincipal( _
          New Samples.AspNet.Security.MyFormsIdentity(ticket), _
          New String(0) {})
      Catch e As HttpException
        ' Decrypt method failed.
      End Try
    End If
  Else
      Throw New Exception("Cookieless Forms Authentication is not " & _
                            "supported for this application.")
  End If
End Sub
public void FormsAuthentication_OnAuthenticate(object sender, FormsAuthenticationEventArgs args)
{
  if (FormsAuthentication.CookiesSupported)
  {
    if (Request.Cookies[FormsAuthentication.FormsCookieName] != null)
    {
      try
      {
        FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(
          Request.Cookies[FormsAuthentication.FormsCookieName].Value);
        
        args.User = new System.Security.Principal.GenericPrincipal(
          new Samples.AspNet.Security.MyFormsIdentity(ticket),
          new string[0]);
      }
      catch (Exception e)
      {
        // Decrypt method failed.
      }
    }
  }
  else
  {
    throw new HttpException("Cookieless Forms Authentication is not " +
                            "supported for this application.");
  }
}

.NET Framework のセキュリティ

継承階層

System.Object
  System.Web.Security.FormsAuthenticationModule

スレッド セーフ

この型の public static (Visual Basicでは共有) メンバはすべて,スレッド セーフです。インスタンス メンバの場合は,スレッド セーフであるとは限りません。

プラットフォーム

Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

バージョン情報

.NET Framework

サポート対象 : 3.0,2.0,1.1,1.0

参照

関連項目

FormsAuthenticationModule メンバ
System.Web.Security 名前空間

その他の技術情報

フォーム認証プロバイダ
Global.asax 構文