Freigeben über


PassportIdentity-Klasse

Stellt eine Klasse bereit, die von PassportAuthenticationModule verwendet wird. Sie stellt ein Verfahren bereit, mit dem eine Anwendung auf die Ticket-Methode zugreifen kann. Diese Klasse kann nicht geerbt werden.

Namespace: System.Web.Security
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Public NotInheritable Class PassportIdentity
    Implements IIdentity, IDisposable
'Usage
Dim instance As PassportIdentity
public sealed class PassportIdentity : IIdentity, IDisposable
public ref class PassportIdentity sealed : IIdentity, IDisposable
public final class PassportIdentity implements IIdentity, IDisposable
public final class PassportIdentity implements IIdentity, IDisposable

Hinweise

Wenn Sie die .NET Passport-Klassen und -Methoden verwenden möchten, müssen Sie das Passport SDK installieren. Passport SDK, Version 1.4, wird unterstützt, aber nicht empfohlen. Passport SDK, Version 2.1, wird unterstützt und empfohlen. Sie können das Passport SDK von https://www.microsoft.com/net/downloads.asp. downloaden.

Weitere Informationen über Passport-Authentifizierung finden Sie unter Passport-Authentifizierungsanbieter.

Hinweis

In einigen Methoden dieser Klasse verfügt die entsprechende Passport-Methode über optionale Parameter. Bei einer Passport-Methode mit optionalen Ganzahl- und booleschen Parametern können Sie "–1" übergeben, um anzuzeigen, dass Passport den Standardwert verwenden soll. Wenn eine Passport-Methode über optionale Zeichenfolgenparameter verfügt, können Sie NULL (Nothing in Visual Basic) übergeben, um anzuzeigen, dass Passport den Standardwert verwenden soll. Wenn ein Parameter einen dieser Standardwerte annehmen kann, wird dies in der Parameterbeschreibung vermerkt.

Hinweis zu Windows XP Home Edition, Windows XP Professional x64 Edition, Windows Server 2003: Nur Passport SDK, Version 2.1, wird unterstützt.

Thema Position
Gewusst wie: Implementieren von Passport-Authentifizierung in ASP.NET-Anwendungen Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Implementieren von Passport-Authentifizierung in ASP.NET-Anwendungen Erstellen von ASP.NET-Webanwendungen

Beispiel

<!-- 
This example demonstrates implementing the soft sign-in authentication approach. 
In order for the example to work, the following requirements must be met. 
You can find details on these requirements in the Passport SDK documentation.

1. You must modify the Web.config file associated with this page so that 
authentication mode is set to "Passport".
2. You must have the Passport SDK installed.
3. You must have a Passport Site ID for the site where your page resides. 
If your Site ID is in the PREP environment, you will also need a PREP Passport.
4. You must have installed the encryption key you received after registering your 
site and receiving a site ID.
5. You must have the Passport Manager object settings correctly configured for your site.
-->


...
<%@ Page language="VB" AutoEventWireup="true" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Runtime.InteropServices" %>


<HTML>
    <HEAD>
        <SCRIPT runat="server">
            Private Sub Page_Load(sender As Object, e As System.EventArgs)
                Try 
                    ' Determine whether Passport is the type of authentication
                    ' this page is set to use. (Authentication information
                    ' is set in the Web.config file.)
                    If Not TypeOf(Me.Context.User.Identity) Is PassportIdentity Then
                        ' If this page isn't set to use Passport authentication,
                        ' quit now.
                         Me.Response.Write("Error: Passport authentication failed. " & _
                             "Make sure that the Passport SDK is installed and your " & _
                             "Web.config file is configured correctly.")
                        Return
                    End If

                    ' Expire the page to avoid the browser's cache.
                    Response.Cache.SetCacheability(HttpCacheability.NoCache)
                    
                    ' Get a version of the Identity value that is cast as type
                    ' PassportIdentity. 
                    Dim identity As PassportIdentity = Me.Context.User.Identity
                    ' Determine whether the user is already signed in with a valid
                    ' and current ticket. Passing -1 for the parameter values 
                    ' indicates the default values will be used.
                    If (identity.GetIsAuthenticated(-1, -1, -1)) Then
                        Me.Response.Write("Welcome to the site.<br><br>")
                        ' Print the Passport sign in button on the screen.
                        Me.Response.Write(identity.LogoTag2())
                        ' Make sure the user has core profile information before
                        ' trying to access it.
                        If (identity.HasProfile("core")) Then
                            Me.Response.Write("<b>You have been authenticated as " & _ 
                            "Passport identity:" & identity.Name & "</b></p>")
                        End If
    
                    ' Determine whether the user has a ticket.
                    ElseIf identity.HasTicket Then
                        ' If the user has a ticket but wasn't authenticated, that 
                        ' means the ticket is stale, so the login needs to be refreshed.
                        ' Passing true as the fForceLogin parameter value indicates that 
                        ' silent refresh will be accepted.
                        identity.LoginUser(Nothing, -1, True, Nothing, -1, Nothing, _
                            -1, True, Nothing)

                    ' If the user does not already have a ticket, ask the user
                    ' to sign in.
                    Else
                        Me.Response.Write("Please sign in using the link below.<br><br>")
                        ' Print the Passport sign in button on the screen.
                        Me.Response.Write(identity.LogoTag2())
                    End If

                Catch comError As System.Runtime.InteropServices.COMException
                    Me.Response.Write("An error occured while working with the " & _
                        "Passport SDK. The following result was returned: " & _
                        comError.ErrorCode)
                End Try
            End Sub
</SCRIPT>
    </HEAD>

    <body>
        <form runat="server">
        </form>
    </body>
</HTML>
<!-- 
This example demonstrates implementing the soft sign-in authentication approach. 
In order for the example to work, the following requirements must be met. 
You can find details on these requirements in the Passport SDK documentation.

1. You must modify the Web.config file associated with this page so that 
authentication mode is set to "Passport".
2. You must have the Passport SDK installed.
3. You must have a Passport Site ID for the site where your page resides. 
If your Site ID is in the PREP environment, you will also need a PREP Passport.
4. You must have installed the encryption key you received after registering 
your site and receiving a site ID.
5. You must have the Passport Manager object settings correctly configured for 
your site.
-->


...
<%@ Page language="c#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Runtime.InteropServices" %>
<HTML>
    <HEAD>
        <SCRIPT runat="server">
            private void Page_Load(object sender, System.EventArgs e)
            {
                try 
                {
                    // Determine whether Passport is the type of authentication
                    // this page is set to use. (Authentication information
                    // is set in the Web.config file.)
                    if (!(this.Context.User.Identity is PassportIdentity))
                    {
                        // If this page isn't set to use Passport authentication,
                        // quit now.
                        this.Response.Write("Error: Passport authentication failed. " + 
                            "Make sure that the Passport SDK is installed " +
                            "and your Web.config file is configured correctly.");
                        return;
                    }

                    // Expire the page to avoid the browser's cache.
                    Response.Cache.SetCacheability(HttpCacheability.NoCache); 


                    // Get a version of the Identity value that is cast as type
                    // PassportIdentity. 
                    PassportIdentity identity = (this.Context.User.Identity as PassportIdentity);   
                    // Determine whether the user is already signed in with a valid
                    // and current ticket. Passing -1 for the parameter values 
                    // indicates the default values will be used.
                    if (identity.GetIsAuthenticated(-1, -1, -1))
                    {
                        this.Response.Write("Welcome to the site.<br><br>");
                        // Print the Passport sign in button on the screen.
                        this.Response.Write(identity.LogoTag2());
                        // Make sure the user has core profile information before
                        // trying to access it.
                        if (identity.HasProfile("core"))
                        {
                            this.Response.Write("<b>You have been authenticated as " + 
                                "Passport identity:" + identity.Name + "</b></p>");
                        }
                    }
    
                    // Determine whether the user has a ticket.
                    else if (identity.HasTicket)
                    {
                        // If the user has a ticket but wasn't authenticated, that 
                        // means the ticket is stale, so the login needs to be refreshed.
                        // Passing true as the fForceLogin parameter value indicates that 
                        // silent refresh will be accepted.
                        identity.LoginUser(null, -1, true, null, -1, null, -1, true, null);
                    }

                    // If the user does not already have a ticket, ask the user
                    // to sign in.
                    else
                    {
                        this.Response.Write("Please sign in using the link below.<br><br>");
                        // Print the Passport sign in button on the screen.
                        this.Response.Write(identity.LogoTag2());
                    }
                }
                catch (System.Runtime.InteropServices.COMException comError)
                {
                    this.Response.Write("An error occured while working with the " +
                        "Passport SDK.");
                }
            }
        </SCRIPT>
    </HEAD>
    <body>
        <form runat="server">
        </form>
    </body>
</HTML>

Vererbungshierarchie

System.Object
  System.Web.Security.PassportIdentity

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

PassportIdentity-Member
System.Web.Security-Namespace

Weitere Ressourcen

Passport-Authentifizierungsanbieter