Ich habe eine Silverlight-Webanwendung mit WCF und Membership.CreateUser, um neue Benutzer zu erstellen.Nach dem Erstellen eines Benutzers oder wenn die Erstellung fehlschlägt, gibt jeder weitere Versuch der Wiederherstellung MembershipCreteStatus mehr als einmal zurück
Wenn ich erfolgreich einen Benutzer erstellen, dann einen anderen Benutzer erstellen, bekomme ich zweimal die Statusmeldung "Benutzer erfolgreich erstellt". Oder wenn mein erster Versuch, einen neuen Benutzer zu erstellen, fehlschlägt, sagen wir, weil der Benutzername bereits existiert, werden bei weiteren Versuchen die Statusmeldungen mehr als einmal zurückgegeben.
Mein WCF Servicecode
[OperationContract]
public MembershipCreateStatus CreateNewUser(string userName, string password, string email, string securityQuestion, string securityAnswer)
{
MembershipCreateStatus status = new MembershipCreateStatus();
MembershipUser newUser = Membership.CreateUser(userName, password, email, securityQuestion, securityAnswer, true, out status);
return status;
}
Mein Aufruf der Methode
tmsClient.CreateNewUserCompleted += new EventHandler<CreateNewUserCompletedEventArgs>(tmsClient_CreateNewUserCompleted);
tmsClient.CreateNewUserAsync(nu.UserName, nu.Password, nu.Email, nu.SecurityQuestion, nu.SecurityAnswer);
Mein Ereignis
abgeschlossenvoid tmsClient_CreateNewUserCompleted(object sender, CreateNewUserCompletedEventArgs e)
{
MembershipCreateStatus status = e.Result;
string result = GetErrorMessage(status);
MessageBox.Show(result);
}
Und schließlich die GetErrorMessage Methode
public string GetErrorMessage(MembershipCreateStatus status)
{
switch (status)
{
case MembershipCreateStatus.Success:
return "The user was successfully created.";
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.";
default:
return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
}
}
Irgendwelche Ideen, warum das passiert? Tx
Neill
Das funktioniert großartig - danke dmusial – Neill