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:
Inhaltsverzeichnis
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