FormsIdentity クラス

定義

フォーム認証を使用して認証されたユーザー ID を表します。 このクラスは継承できません。

public ref class FormsIdentity sealed : System::Security::Principal::IIdentity
public ref class FormsIdentity : System::Security::Principal::IIdentity
public ref class FormsIdentity : System::Security::Claims::ClaimsIdentity
[System.Serializable]
public sealed class FormsIdentity : System.Security.Principal.IIdentity
[System.Serializable]
public class FormsIdentity : System.Security.Principal.IIdentity
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(false)]
public class FormsIdentity : System.Security.Claims.ClaimsIdentity
[<System.Serializable>]
type FormsIdentity = class
    interface IIdentity
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(false)>]
type FormsIdentity = class
    inherit ClaimsIdentity
Public NotInheritable Class FormsIdentity
Implements IIdentity
Public Class FormsIdentity
Implements IIdentity
Public Class FormsIdentity
Inherits ClaimsIdentity
継承
FormsIdentity
継承
FormsIdentity
属性
実装

次のコード例では、 を生成 FormsAuthenticationTicket し、それを使用して、ユーザーが FormsIdentity フォームに正しいユーザー名とパスワードを指定したかどうかに基づいて、 クラスのインスタンスを作成します。

<%@ Page Language="C#" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ Import Namespace="System.Globalization" %>
<%@ Import Namespace="System.Web.Security" %>
<script runat="server">
    protected void Login_Click(object sender, EventArgs e)
    {
        bool isAuthenticated = false;
        if (string.Compare(UserNameTextBox.Text, "UserName", true,
        CultureInfo.InvariantCulture) == 0)
        {
            if (string.Compare(PasswordTextBox.Text, "Password", true,
            CultureInfo.InvariantCulture) == 0)
            {
                isAuthenticated = true;
            }
        }
        else isAuthenticated = false;
        
        // Create the formsIdentity for the user.
        CreateformsIdentity(UserNameTextBox.Text, isAuthenticated);
    }
    private void CreateformsIdentity(string userName, bool isAuthenticated)
    {
        FormsIdentity formsID;
        FormsAuthenticationTicket authenticationTicket;
        
        if (isAuthenticated)
        {
            // If authentication passed, create a ticket 
            // as a Manager that expires in 15 minutes.
            authenticationTicket = new FormsAuthenticationTicket(1, userName,
                DateTime.Now, DateTime.Now.AddMinutes(15), false, "Manager");
        }
        else
        {
            // If authentication failed, create a ticket 
            // as a guest that expired 5 minutes ago.
            authenticationTicket = new FormsAuthenticationTicket(1, userName,
                DateTime.Now, DateTime.Now.Subtract(new TimeSpan(0, 5, 0)),
                false, "Guest");
        }

        // Create form identity from FormsAuthenticationTicket.
        formsID = new FormsIdentity(authenticationTicket);
        Response.Clear();
        Response.Write("Authentication Type: " + formsID.AuthenticationType +
            "<BR>");

        // Get FormsAuthenticationTicket from the FormIdentity
        FormsAuthenticationTicket ticket = formsID.Ticket;
        if (ticket.Expired)
        {
            Response.Write("Authentication failed, so the role is set to " +
                ticket.UserData);
        }
        else
        {
            Response.Write("Authentication succeeded, so the role is set to " +
                ticket.UserData);
        }
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>WebForm1</title>
    </head>
    <body>
        <form id="Form1" method="post" runat="server">
            <asp:Label id="UserIdLabel" runat="server"
                style="left: 144px; position: absolute; top: 160px">
                User-ID:</asp:Label>
            <asp:Label id="PasswordLabel" runat="server"
                style="left: 144px; position: absolute; top: 200px">
                Password:</asp:Label>
            <asp:TextBox id="UserNameTextBox" runat="server"
                style="left: 232px; position: absolute; top: 160px;
                width:182px; height:22px"></asp:TextBox>
            <asp:TextBox id="PasswordTextBox" runat="server"
                style="left: 232px; position: absolute; top: 200px;
                width:181px; height:22px" TextMode="Password">
                </asp:TextBox>
            <asp:Button id="Login" runat="server" Text="Login"
                style="left: 232px; position: absolute; top: 232px; 
                width:100px" OnClick="Login_Click"></asp:Button>
        </form>
    </body>
</html>
<%@ Page Language="vb" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ Import Namespace="System.Globalization" %>
<script runat="server">
    Private Sub Login_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Login.Click

        ' For the example, the user name must be "UserName" and the password
        ' must be "Password" for authentication to succeed.
        Dim isAuthenticated As Boolean
        If String.Compare(UserNameTextBox.Text, "UserName", True, _
            CultureInfo.InvariantCulture) = 0 Then
            If String.Compare(PasswordTextBox.Text, "Password", True, _
                CultureInfo.InvariantCulture) = 0 Then
                isAuthenticated = True
            End If
        Else
            isAuthenticated = False
        End If

        ' Create the FormsIdentity for the user.
        CreateFormsIdentity(UserNameTextBox.Text, isAuthenticated)

    End Sub

    Private Sub CreateFormsIdentity(ByVal userName As String, _
        ByVal isAuthenticated As Boolean)

        Dim formsId As System.Web.Security.FormsIdentity
        Dim authenticationTicket As _
            System.Web.Security.FormsAuthenticationTicket

        If isAuthenticated Then
            ' If authentication passed, create a ticket 
            ' as a Manager that expires in 15 minutes.
            authenticationTicket = _
                New FormsAuthenticationTicket(1, userName, DateTime.Now, _
                DateTime.Now.AddMinutes(15), False, "Manager")
        Else
            ' If authentication failed, create a ticket 
            ' as a guest that expired 5 minutes ago.
            authenticationTicket = _
                New FormsAuthenticationTicket(1, userName, DateTime.Now, _
                DateTime.Now.Subtract(New TimeSpan(0, 5, 0)), False, "Guest")
        End If

        ' Create form identity from FormsAuthenticationTicket.
        formsId = New FormsIdentity(authenticationTicket)

        Response.Clear()
        Response.Write("Authenticate Type: " & _
            formsId.AuthenticationType & "<BR>")

        ' Get FormsAuthenticationTicket from the FormIdentity
        Dim ticket As FormsAuthenticationTicket = formsId.Ticket()
        If ticket.Expired Then
            Response.Write("Authentication failed, so the role is set to " & _
                ticket.UserData)
        Else
            Response.Write("Authentication succeeded, so the role is set to " & _
                ticket.UserData)
        End If
    End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>WebForm1</title>
    </head>
    <body>
        <form id="Form1" method="post" runat="server">
            <asp:Label id="UserIdLabel" runat="server"
                style="left: 144px; position: absolute; top: 160px">
                User-ID:</asp:Label>
            <asp:Label id="PasswordLabel" runat="server"
                style="left: 144px; position: absolute; top: 200px">
                Password:</asp:Label>
            <asp:TextBox id="UserNameTextBox" runat="server"
                style="left: 232px; position: absolute; top: 160px;
                width:182px; height:22px"></asp:TextBox>
            <asp:TextBox id="PasswordTextBox" runat="server"
                style="left: 232px; position: absolute; top: 200px;
                width:181px; height:22px" TextMode="Password">
                </asp:TextBox>
            <asp:Button id="Login" runat="server" Text="Login"
                style="left: 232px; position: absolute; top: 232px; 
                width:100px"></asp:Button>
        </form>
    </body>
</html>

注釈

クラスは FormsIdentity 、ユーザーがフォーム認証で認証されるときに、 によって FormsAuthenticationModule 使用されます。 クラスの FormsIdentity インスタンスは、フォーム認証 Cookie または URL から復号化された を使用して FormsAuthenticationTicket 作成されます。 クラスのFormsIdentity新しいインスタンスは、現在HttpContextの の プロパティのUser値として設定される新しいGenericPrincipalオブジェクトを構築するために使用されます。

コンストラクター

FormsIdentity(FormsAuthenticationTicket)

FormsIdentity クラスの新しいインスタンスを初期化します。

FormsIdentity(FormsIdentity)

指定した ID に基づいて FormsIdentity クラスの新しいインスタンスを初期化します。

フィールド

DefaultIssuer

既定の発行者 “LOCAL AUTHORITY”。

(継承元 ClaimsIdentity)
DefaultNameClaimType

既定の名前クレームの種類、Name

(継承元 ClaimsIdentity)
DefaultRoleClaimType

既定のロール クレームの種類、Role

(継承元 ClaimsIdentity)

プロパティ

Actor

デリゲート権限が付与された呼び出しパーティの ID を取得または設定します。

(継承元 ClaimsIdentity)
AuthenticationType

認証済み ID の型を取得します。

BootstrapContext

このクレーム ID を作成するために使用されたトークンを取得または設定します。

(継承元 ClaimsIdentity)
Claims

この ID に関連付けられたクレームのコレクションを取得します。

CustomSerializationData

派生型によって提供される追加データが含まれています。 通常、WriteTo(BinaryWriter, Byte[]) の呼び出し時に設定されます。

(継承元 ClaimsIdentity)
IsAuthenticated

認証が行われたかどうかを示す値を取得します。

Label

このクレーム識別子のラベルを取得または設定します。

(継承元 ClaimsIdentity)
Name

フォーム ID のユーザー名を取得します。

NameClaimType

このクレーム ID の Name プロパティにどのクレームが値を提供するかを判断するために使用されるクレームの種類を取得します。

(継承元 ClaimsIdentity)
RoleClaimType

このクレーム ID のクレームのうちで .NET のロールとして解釈されるクレームの種類を取得します。

(継承元 ClaimsIdentity)
Ticket

フォーム認証ユーザー ID の FormsAuthenticationTicket を取得します。

メソッド

AddClaim(Claim)

このクレーム ID に単一のクレームを追加します。

(継承元 ClaimsIdentity)
AddClaims(IEnumerable<Claim>)

このクレーム ID にクレームの一覧を追加します。

(継承元 ClaimsIdentity)
Clone()

現在の FormsIdentity インスタンスのコピーを取得します。

CreateClaim(BinaryReader)

カスタム Claim を作成する拡張ポイントを派生型に提供します。

(継承元 ClaimsIdentity)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
FindAll(Predicate<Claim>)

指定した述語に一致するすべてのクレームを取得します。

(継承元 ClaimsIdentity)
FindAll(String)

指定されたクレーム型のすべてのクレームを取得します。

(継承元 ClaimsIdentity)
FindFirst(Predicate<Claim>)

指定した述語に一致する最初のクレームを取得します。

(継承元 ClaimsIdentity)
FindFirst(String)

指定したクレームの種類の最初のクレームを取得します。

(継承元 ClaimsIdentity)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetObjectData(SerializationInfo, StreamingContext)

SerializationInfo オブジェクトに、現在の ClaimsIdentity オブジェクトをシリアル化するために必要なデータを格納します。

(継承元 ClaimsIdentity)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
HasClaim(Predicate<Claim>)

指定した述語に一致するクレーム ID がこのクレーム ID に含まれるかどうかを判断します。

(継承元 ClaimsIdentity)
HasClaim(String, String)

指定したクレームの種類と値を持つクレームがこのクレーム ID に含まれるかどうかを判断します。

(継承元 ClaimsIdentity)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
RemoveClaim(Claim)

クレーム ID からクレームを削除します。

(継承元 ClaimsIdentity)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
TryRemoveClaim(Claim)

クレーム ID からクレームを削除します。

(継承元 ClaimsIdentity)
WriteTo(BinaryWriter, Byte[])

BinaryWriter を使用してシリアル化します。

(継承元 ClaimsIdentity)
WriteTo(BinaryWriter)

BinaryWriter を使用してシリアル化します。

(継承元 ClaimsIdentity)

適用対象

こちらもご覧ください