0 von 4 fanden dies hilfreich - Dieses Thema bewerten.

Login-Klasse

Hinweis: Diese Klasse ist neu in .NET Framework, Version 2.0.

Stellt Benutzeroberflächenelemente zum Anmelden an einer Website bereit.

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

[BindableAttribute(false)] 
public class Login : CompositeControl
/** @attribute BindableAttribute(false) */ 
public class Login extends CompositeControl
BindableAttribute(false) 
public class Login extends CompositeControl

Das Login-Steuerelement ist ein zusammengesetztes Steuerelement, das alle für die Authentifizierung eines Benutzers auf einer Website benötigten gängigen Benutzeroberflächenelemente bereitstellt. Die folgenden drei Elemente sind für alle Anmeldeszenarios erforderlich:

  • Ein eindeutiger Benutzername, um den Benutzer zu identifizieren.

  • Ein Kennwort, um die Identität des Benutzers zu überprüfen.

  • Eine Anmeldeschaltfläche, um die Anmeldeinformationen an den Server zu senden.

Das Login-Steuerelement stellt auch die folgenden optionalen Benutzeroberflächenelemente zur Unterstützung zusätzlicher Funktionen bereit:

  • Eine Verknüpfung für eine Kennworterinnerung.

  • Ein Kontrollkästchen für die Speicherung der Anmeldedaten, damit die Anmeldeinformationen zwischen den Sitzungen erhalten bleiben.

  • Eine Hilfeverknüpfung für Benutzer, die Schwierigkeiten beim Anmelden haben.

  • Eine Verknüpfung für das Registrieren neuer Benutzer, mit deren Hilfe Benutzer zu einer Registrierungsseite umgeleitet werden.

  • Ein Anweisungstext, der auf dem Anmeldeformular angezeigt wird.

  • Ein benutzerdefinierter Fehlertext, der angezeigt wird, wenn der Benutzer auf die Anmeldeschaltfläche klickt, ohne zuvor die Felder für den Benutzernamen oder das Kennwort ausgefüllt zu haben.

  • Ein benutzerdefinierter Fehlertext, der angezeigt wird, wenn die Anmeldung fehlschlägt.

  • Eine benutzerdefinierte Aktion, die bei erfolgreicher Anmeldung eintritt.

  • Eine Methode, das Anmeldesteuerelement auszublenden, wenn der Benutzer bereits bei der Site angemeldet ist.

Eine Tabelle mit Informationen, welche Steuerelemente erforderlich und welche optional sind, finden Sie unter der LayoutTemplate-Eigenschaft.

SicherheitshinweisSicherheitshinweis

Das Akzeptieren von Benutzereingaben ist ein potenzielles Sicherheitsrisiko. Böswillige Benutzer können Daten senden, die Risiken erzeugen oder Programme ausführen, die versuchen, Kennwörter zu generieren. Zum Erhöhen der Sicherheit bei der Verwendung von Benutzereingaben sollten Sie die Validierungsfeatures des Steuerelements verwenden und alle Datenanbieter schützen, die für das Steuerelement konfiguriert sind. Weitere Informationen finden Sie unter Sichern von Anmeldungssteuerelementen, Grundlegende Sicherheitshinweise für Webanwendungen und Sichern der Mitgliedschaft.

Das Login-Steuerelement verwendet einen Mitgliedschaftsanbieter zum Abrufen von Benutzeranmeldeinformationen. Wenn Sie nichts Anderes angeben, verwendet das Login-Steuerelement den in der Datei Web.config definierten Standardmitgliedschaftsanbieter. Wenn Sie einen anderen Anbieter angeben möchten, legen Sie die MembershipProvider-Eigenschaft auf einen der in der Datei Web.config der Anwendung definierten Namen von Mitgliedschaftsanbietern fest. Weitere Informationen finden Sie unter Mitgliedschaftsanbieter.

Wenn Sie einen benutzerdefinierten Authentifizierungsdienst verwenden möchten, können Sie mithilfe der OnAuthenticate-Methode den Dienst aufrufen.

Stile und Vorlagen

Die Darstellung des Login-Steuerelements kann vom Benutzer für alle Vorlagen und Stileinstellungen vollständig angepasst werden. Alle Textmeldungen der Benutzeroberfläche können vom Benutzer auch über die Eigenschaften der Login-Klasse angepasst werden. Der Standardschnittstellentext wird automatisch anhand der Gebietsschemaeinstellung auf dem Server lokalisiert.

Wenn das Login-Steuerelement mit Vorlagen angepasst wird, werden die AccessKey-Eigenschaft und die TabIndex-Eigenschaft ignoriert. Legen Sie in diesem Fall die AccessKey-Eigenschaft und die TabIndex-Eigenschaft jedes untergeordneten Vorlagensteuerelements direkt fest.

Auf Login-Steuerelementeigenschaften, die durch Textfelder dargestellt werden, wie UserName und Password, kann in allen Phasen des Seitenlebenszyklus zugegriffen werden. Das Steuerelement übernimmt mithilfe des von den Textfeldern ausgelösten TextChanged-Ereignisses alle vom Endbenutzer vorgenommenen Änderungen.

HinweisHinweis

Wenn Sie das Login-Steuerelement in ein WizardStep-Objekt einbetten, legen Sie die ActiveStepIndex-Eigenschaft explizit in einem Page_Load-Ereignishandler fest, wenn der Benutzer authentifiziert ist. Das Wizard-Steuerelement wechselt in diesem Szenario nicht automatisch zum nächsten WizardStep-Objekt.

In der folgenden Tabelle sind die Stileigenschaften des Login-Steuerelements aufgelistet, und es wird erläutert, auf welche Benutzeroberflächenelemente die jeweiligen Stileigenschaften angewendet werden. Eine Liste der Eigenschaften, auf die jeder Stil angewendet wird, finden Sie in der Dokumentation der einzelnen Stileigenschaften.

Stileigenschaft

Betroffenes Benutzeroberflächenelement

BorderPadding

Der Zwischenraum zwischen dem Steuerelementinhalt und dem Rahmen des Steuerelements.

CheckBoxStyle

Kontrollkästchen für die Speicherung der Anmeldedaten.

FailureTextStyle

Anmeldefehlertext.

InstructionTextStyle

Anweisungstext auf der Seite, der beschreibt, wie das Steuerelement verwendet wird.

LabelStyle

Bezeichnungen für alle Eingabefelder, z. B. Textfelder.

TextBoxStyle

Texteingabefelder.

TitleTextStyle

Titeltext.

ValidatorTextStyle

Ein Text, der dem Benutzer angezeigt wird, wenn ein Anmeldeversuch aufgrund von Validierungsfehlern fehlgeschlagen ist.

HyperLinkStyle

Verknüpfungen zu anderen Seiten.

LoginButtonStyle

Anmeldeschaltfläche.

Validierungsgruppen

Der UserName-Eigenschaft und der Password-Eigenschaft sind RequiredFieldValidator-Steuerelemente zugeordnet, die Benutzer daran hindern sollen, die Seite ohne Angabe der erforderlichen Informationen zu senden.

Das Login-Steuerelement verwendet eine Validierungsgruppe, sodass andere Felder auf derselben Seite, auf der sich das Login-Steuerelement befindet, separat validiert werden können. Standardmäßig wird die ID-Eigenschaft des Login-Steuerelements als Name der Validierungsgruppe verwendet. Beispielsweise verwendet ein Login-Steuerelement mit der Kennung "Login1" eine Validierungsgruppe mit dem Namen "Login1". Wenn Sie eine Validierungsgruppe festlegen möchten, zu der das Login-Steuerelement gehört, müssen Sie das Steuerelement mit einer Vorlage versehen und den Namen der Validierungsgruppe ändern.

Eingabehilfen

Das für dieses Steuerelement standardmäßig wiedergegebene Markup entspricht eventuell nicht den Standards für die Eingabehilfen wie beispielsweise den Richtlinien der Web Content Accessibility Guidelines 1.0 (WCAG) mit der Priorität 1. Details über die Unterstützung von Eingabehilfen für dieses Steuerelement finden Sie unter Steuerelemente und Eingabehilfen von ASP.NET.

Im folgenden Codebeispiel wird mithilfe eines Login-Steuerelements eine Benutzeroberfläche für die Anmeldung bei einer Website bereitgestellt.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.ComponentModel" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<SCRIPT runat="server">
bool IsValidEmail(string strIn)
{
    // Return true if strIn is in valid e-mail format.
    return Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); 
}

void OnLoggingIn(object sender, System.Web.UI.WebControls.LoginCancelEventArgs e)
{
    if (!IsValidEmail(Login1.UserName))
    {
        Login1.InstructionText = "Enter a valid e-mail address.";
        Login1.InstructionTextStyle.ForeColor = System.Drawing.Color.RosyBrown;
        e.Cancel = true;
    }
    else
    {
        Login1.InstructionText = String.Empty;
    }
}

void OnLoginError(object sender, EventArgs e)
{
    Login1.HelpPageText = "Help with logging in...";
    Login1.PasswordRecoveryText = "Forgot your password?";
}
</SCRIPT>

<HTML>
    <BODY>
        <FORM runat="server">
            <asp:Login id="Login1" runat="server" 
                BorderStyle="Solid" 
                BackColor="#F7F7DE" 
                BorderWidth="1px"
                BorderColor="#CCCC99" 
                Font-Size="10pt" 
                Font-Names="Verdana" 
                CreateUserText="Create a new user..."
                CreateUserUrl="newUser.aspx" 
                HelpPageUrl="help.aspx"
                PasswordRecoveryUrl="getPass.aspx" 
                UserNameLabelText="E-mail address:" 
                OnLoggingIn=OnLoggingIn
                OnLoginError=OnLoginError >
                <TitleTextStyle Font-Bold="True" 
                    ForeColor="#FFFFFF" 
                    BackColor="#6B696B">
                </TitleTextStyle>
            </asp:Login>

        </FORM>
    </BODY>
</HTML>

Im folgenden Codebeispiel wird das Erweitern des Login-Steuerelements veranschaulicht. Das CustomLogin-Steuerelement enthält ein DropDownList-Steuerelement, womit die Benutzer den Mitgliedschaftsanbieter auswählen können, bei dem sie authentifiziert sind. (Diese Anbieter sind in Web.config konfiguriert.) In der OnLoggingIn-Methode wird die MembershipProvider-Eigenschaft auf den ausgewählten Wert des DropDownList-Steuerelements festgelegt.

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace Samples.AspNet.Controls
{
    public sealed class CustomLogin : Login
    {
        public CustomLogin() { }
        
        protected override void OnLoggingIn(LoginCancelEventArgs e)
        {
            // Set the Membership provider for the Login control from a DropDownList.
            DropDownList list = (DropDownList)this.FindControl("domain");
            this.MembershipProvider = list.SelectedValue;
            base.OnLoggingIn(e);
        }
        
        protected override void CreateChildControls()
        {
            LayoutTemplate = new MyTemplate();
            base.CreateChildControls();
        }
    }
    
    // A Template that contains the child controls.
    public class MyTemplate : ITemplate
    {
        void ITemplate.InstantiateIn(Control container)
        {
            // A TextBox for the user name.
            TextBox username = new TextBox();
            username.ID = "username";
            
            // A TextBox for the password.
            TextBox password = new TextBox();
            password.ID = "password";
            
            // A CheckBox to remember the user on subsequent visits.
            CheckBox remember = new CheckBox();
            remember.ID = "RememberMe";
            remember.Text = "Don't forget me!";
            
            // Failure Text.
            Literal failure = new Literal();
            failure.ID = "FailureText";
            
            // A DropDownList to choose the Membership provider.
            DropDownList domain = new DropDownList();
            domain.ID = "Domain";
            domain.Items.Add(new ListItem("SqlMembers"));
            domain.Items.Add(new ListItem("SqlMembers2"));
            
            // A Button to log in.
            Button submit = new Button();
            submit.CommandName = "login";
            submit.Text = "LOGIN";

            container.Controls.Add(new LiteralControl("UserName:"));
            container.Controls.Add(username);
            container.Controls.Add(new LiteralControl("<br>Password:"));
            container.Controls.Add(password);
            container.Controls.Add(new LiteralControl("<br>"));
            container.Controls.Add(remember);
            container.Controls.Add(new LiteralControl("<br>Domain:"));
            container.Controls.Add(domain);
            container.Controls.Add(new LiteralControl("<br>"));
            container.Controls.Add(failure);
            container.Controls.Add(new LiteralControl("<br>"));
            container.Controls.Add(submit);
        }
    }    
}

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

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.

.NET Framework

Unterstützt in: 2.0
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
© 2013 Microsoft. Alle Rechte vorbehalten.