User programmgesteuert anlegen

Voraussetzungen:
Es existiert eine Asp.Net-Site, mit einem MembershipProvider, der die Anmeldung per Login-Formular mit einer Datenbank authentifiziert.

Ziel ist nun, in der Site selbst – z. B. dem Admin – neue User hinzufügen zu lassen. Einige wichtige Infos, die man dazu wissen sollte, findet ihr hier:

Grundeinstellungen

Der Membership-Provider wird grundsätzlich meist in der web.config konfiguriert. Darin finden sich z. B. folgende Einträge:

<membership defaultProvider="CustomizedMembershipProvider">
	<providers>
		<add name="CustomizedMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="conLernwelt1"/>
	</providers>
</membership>

Hier kann z. B. die Einstellungen vorgenommen werden, dass Sicherheitsfrage und -antwort nicht benötigt werden. Dazu fügt man in die „<add“-Zeile folgendes Attribut ein:

requiresQuestionAndAnswer="false"

Anlegen eines Users

Der Befehl zum Anlegen lautet:

Membership.CreateUser(Benutzername,Passwort,E-Mail)

Fehler abfangen

Zunächst definiert man eine Funktion, die die Fehler „übersetzt“:

    Public Function GetErrorMessage(ByVal status As MembershipCreateStatus) As String
        'Fehlermeldung übersetzen beim User-Anlegen
 
        Select Case status
            Case MembershipCreateStatus.DuplicateUserName
                Return "Username already exists. Please enter a different user name."
 
            Case MembershipCreateStatus.DuplicateEmail
                Return "A username for that e-mail address already exists. Please enter a different e-mail address."
 
            Case MembershipCreateStatus.InvalidPassword
                Return "The password provided is invalid. Please enter a valid password value."
 
            Case MembershipCreateStatus.InvalidEmail
                Return "The e-mail address provided is invalid. Please check the value and try again."
 
            Case MembershipCreateStatus.InvalidAnswer
                Return "The password retrieval answer provided is invalid. Please check the value and try again."
 
            Case MembershipCreateStatus.InvalidQuestion
                Return "The password retrieval question provided is invalid. Please check the value and try again."
 
            Case MembershipCreateStatus.InvalidUserName
                Return "The user name provided is invalid. Please check the value and try again."
 
            Case MembershipCreateStatus.ProviderError
                Return "The authentication provider Returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator."
 
            Case MembershipCreateStatus.UserRejected
                Return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator."
 
            Case Else
                Return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator."
        End Select
    End Function

Nun der eigentliche Ereignishandler:

    Protected Sub btnUserAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUserAdd.Click
 
        Try
            ' Create new user.
 
            Dim newUser As MembershipUser
            If Not Membership.RequiresQuestionAndAnswer Then
                newUser = Membership.CreateUser(boxUsername.Text, boxPassword.Text, boxEmail.Text)
            End If
 
            lblMsg.Text = "Juhuu!"
 
        Catch ex As MembershipCreateUserException
            lblMsg.Text = GetErrorMessage(ex.StatusCode)
        Catch ex As HttpException
            lblMsg.Text = ex.Message
        End Try
 
    End Sub

Quellen

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne

Loading…
Avatar von manuel

AUTOR

manuel