Immer wenn ich eine neue Anwendung mit Visual Studio 2013 Express für das Web und die Verwendung der einzelnen Konten Authentifizierung erstellen und ich den Registrierungsbutton Ich bemerke, dass es implementiert "E-Mail" anstelle von "Benutzername" und das gleiche gilt für das LoginViewModel, da es sich mit E-Mail anstelle von Benutzername für die Anmeldung anmeldet. Wie kann ich dies ändern, um Benutzername anstelle der Standard-E-Mail ohne Probleme zu verwenden? Außerdem würde ich gerne wissen, wie man den Standard 'guid', der ein String-Typ ist, in 'id' (Integer-Typ) konvertiert.Verwenden Sie Benutzername anstelle von E-Mail für Identität in Asp.net mvc5
Antwort
Die verknüpfte Frage in der angenommenen Antwort beschreibt, wie E-Mail anstelle von UserName zu verwenden ist, OP wollte den Benutzernamen anstelle von E-Mail, was ich in Identity 2.0 in einem MVC-Projekt suchte.
Falls jemand von einer Google-Suche hierher kommt, ist es eigentlich sehr einfach, dies zu tun. Wenn Sie sich die Registrierungs-Post-Aktion anschauen, wird einfach der Benutzername auf die Email-Adresse gesetzt. So .........
Fügen Sie UserName zum RegisterViewModel hinzu und fügen Sie es der Registeransicht hinzu.
<div class="form-group">
@Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.UserName, new { @class = "form-control", @placeholder = "Username or email" })
</div>
</div>
Im Register Beitrag Aktion auf der Account setzen Sie den Benutzernamen des Benutzernamens des Ansichtsmodell und die E-Mail an die E-Mail des Ansichtsmodell.
var user = new ApplicationUser { UserName = model.UserName, Email = model.Email };
Ich möchte keine E-Mail in irgendeiner Weise verwenden. Kann ich mich ohne Angabe einer E-Mail-Adresse registrieren? –
Ich weiß nicht, ob die E-Mail-Adresse im Modell obligatorisch ist, aber wenn nicht, können Sie die vier Zeilen in der Registrierungsansicht für die E-Mail-Adresse entfernen und sie durch den oben aufgeführten UserName-Code ersetzen. Dann könnten Sie den neuen ApplicationUser in der Post-Aktion in Ihrem AccountController wie folgt einstellen. var user = new Anwendungsbenutzer {UserName = model.UserName, Email = model.Email}; Wenn die E-Mail-Adresse obligatorisch ist, setzen Sie die E-Mail einfach auf string.empty – Hoody
Validierungsprüfungen für string.Empty. Sasi Kumars Antwort funktioniert richtig. –
Um E-Mails als nicht einzigartig zu machen:
Konfigurieren unten in IdentityConfig
manager.UserValidator = new UserValidator<ApplicationUser>(manager)
{
AllowOnlyAlphanumericUserNames = false,
RequireUniqueEmail = false
};
Dies war die einfachste Lösung für mich und wurde ein Problem, das ich nach der Konvertierung von MVC 4 zu MVC 5 hatte. – Xipooo
- 1. SignalR ASP.NET MVC5 Identität
- 2. Anmeldung mit "Benutzername" anstelle von "E-Mail-Adresse" in ASP.NET Web Forms Identität
- 3. ASP.NET Identität Custom PasswordValidator Check gegen Benutzername
- 4. Verwenden Sie asp.net Identität mit Geographie autorisieren
- 5. Benutzerdefinierte Anmeldung für Formularauthentifizierung in asp.net verwenden mvc5
- 6. ASP.NET-Identität E-Mail-Adresse anstelle des Benutzernamens
- 7. Verwenden Sie die E-Mail-Adresse anstelle von Benutzername mit ASP.NET-Formularauthentifizierung
- 8. Verwenden von @@ Identität
- 9. Validieren Benutzername und Passwort OWIN in MVC5
- 10. Problem mit Benutzernamen Validierung Nachricht in asp.net Identität
- 11. Authentifizieren mit Benutzername anstelle von E-Mail
- 12. Verwendung von Transaktionen in ASP.NET MVC-Identität 2?
- 13. Wie erhalten Sie Benutzername und Passwort von URL in ASP.NET?
- 14. Asp.Net MVC5 TimeSpan Zusatz
- 15. Bestätigen Sie NT-Benutzername + Passwort in ASP.NET
- 16. MVC5-Identität mit DI (Entfernen von Service Locator Anti-Pattern)
- 17. Datatable Abfrage mit Namen anstelle von Benutzername
- 18. Laravel 5.2: Passwort zurücksetzen Email gegen Benutzername
- 19. So erstellen Sie einen Sicherheitsstempel Wert für asp.net-Identität (IUserSecurityStampStore)
- 20. Wie kann ich eine Sitzung in MVC5-Identität ungültig machen?
- 21. ASP.NET Identität „rollenbasierte“ Forderungen
- 22. Asp.net Identität E-Mail-Validierung i asp.net Identität für die Verwaltung von Benutzern verwende nicht
- 23. Speichern Sie Benutzername und Kennwort ASP.NET-Authentifizierung
- 24. Erstellen Sie DropDownList für eine ASP.NET MVC5-Beziehung
- 25. Ist es möglich, die Funktion "impersonate" mit einer Zeichenfolge (Benutzername) anstelle von intptr zu verwenden?
- 26. So deaktivieren Sie SSL auf asp.net MVC5?
- 27. Asp.net Identität Validierungsfehler
- 28. ASP.NET Identität Rollen
- 29. ASP.net-Identität 2.1 Holen Sie sich alle Benutzer mit Rollen
- 30. Hosting MVC5, Identität 2 und OWIN auf Godaddy
[hier] (http://www.asp.net/identity/overview/extensibility/ change-primary-key-für-Benutzer-in-Aspnet-Identität) ist ein sehr guter Artikel, den Sie folgen können und Sie erhalten die Antwort. Siehe auch [question] (http://stackoverflow.com/questions/19758575/asp-net-identity-use-email-instead-of-user-name) Sie können Ihre eigene usermanager-Klasse verwenden und Benutzernamen statt E-Mail verwenden . – Mairaj
Standardmäßig verwendet der Code E-Mail als Benutzername. 'var user = new ApplicationUser {Benutzername = model.Email, Email = model.Email};'. Fügen Sie die UserName-Eigenschaft zu RegisterViewModel hinzu und verwenden Sie sie stattdessen. – Lijo