Konfigurieren Sie Microsoft.AspNet.Identity, um die E-Mail-Adresse als Benutzernamen zuzulassen
Ich bin in den Prozess der Erstellung einer neuen Applikation und begann mit EF6-rc1 von Microsoft.AspNet.Identität.Core-1.0.0-rc1 von Microsoft.AspNet.Identität.Entity Framework 1.0.0-rc1 von Microsoft.AspNet.Identität.Owin 1.0.0-rc1, usw. und mit der RTM-Versionen habe ich gestern aktualisiert, Sie über NuGet diesem Abend zu RTM.
Abgesehen von ein paar code-änderungen, um die Arbeit, die ich getan hatte, so weit schien alles gut zu gehen, bis ich versuchte, zu erstellen Sie einen lokalen Benutzer-account für die app.
Hatte ich gearbeitet, auf die e-mail-Adressen als Benutzernamen-format, die mit dem release candidate hat Super geklappt, aber jetzt, wenn Sie einen Benutzer anlegen mit einer E-Mail-Adresse einen Benutzernamen, wirft es bis die folgende überprüfung Fehlermeldung:
User name xxxxx@xxxx.com is invalid, can only contain letters or digits.
Ich verbrachte die Letzte Stunde oder so auf der Suche nach einer Lösung oder der Dokumentation zur Konfiguration von Optionen für Sie, aber ohne Erfolg.
Gibt es eine Möglichkeit, kann ich es so konfigurieren, dass e-mail-Adressen für Benutzernamen?
InformationsquelleAutor der Frage LiamGu | 2013-10-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dieses durch einstecken in Ihrem eigenen UserValidator auf den UserManager, oder einfach nur, indem Sie ihn auf die default-Implementierung:
InformationsquelleAutor der Antwort Hao Kung
Die C# - version dieses (im App_Code\IdentityModels.cs) ist
InformationsquelleAutor der Antwort user2554240
In meinem Fall, läuft in VS 2013 C#, MVC 5.2.2, mit ASP.NET Identity 2.0, die Lösung war ein update der ApplicationUserManager Konstruktor innerhalb App_Start\IdentityConfig.cs etwa so:
InformationsquelleAutor der Antwort N1njaB0b
Wenn Sie mit ASP.Net webforms und versuchen, dies zu erreichen, öffnen Sie einfach Ihre IdentityModels.vb/cs-Datei und unter Public Class UserManager, haben es so Aussehen, als so:
InformationsquelleAutor der Antwort TyrolMedia
Wenn Sie nicht finden können, IdentityConfig.cs, ersetzen Sie dann Ihre AccountController Konstruktor mit diesem code.
InformationsquelleAutor der Antwort Suhail Mumtaz Awan
In meinem Fall hatte ich eine repository-Klasse arbeiten mit der Authentifizierung, die nicht lassen Sie mich ein "-" im inneren Benutzernamen.. Das Update war innerhalb der Konstruktor-hier:
InformationsquelleAutor der Antwort Nick Kovalsky
War ich auch hängengeblieben, weil die meisten der Zeit, die Benutzernamen sind E-mails in diesen Tagen, ich kann verstehen, dass die Argumentation einer separaten E-mail Feld, obwohl. Diese sind rein meine Gedanken /Erfahrungen, wie ich auch nicht finden, könnte Microsoft sagen wird.
Erinnern, Asp Identität ist rein zu identifizieren, jemand, den Sie nicht haben, um eine E-mail zu identifizieren, aber Sie erlauben uns, zu speichern, weil es Teil einer Identität. Wenn Sie erstellen ein neues web-Projekt in visual studio haben Sie die Möglichkeit, für die Authentifizierung Optionen.
Wenn Sie ein nicht leeres Projekt geben wie MVC und Authentifizierung festlegen auf "Individuelle Konten" dann sind Sie das grundlegende Fundament für die Benutzerverwaltung. Eine davon enthält einen sub-Klasse suchen, wie diese im App_Start\IdentityConfig.cs:
Was dieser sagt uns, dass Microsoft die Absicht uns mehr speichern komplexen Benutzernamen (siehe AllowOnlyAlphaNumericUserNames = false), so wirklich haben wir gemischte Signale.
Die Tatsache, das erzeugt wird von einem Standard-web-Projekt gibt uns eine gute Indikation /Richtung von Microsoft (und saubere Art und Weise), um es uns ermöglichen, geben Sie die E-mails für das username-Feld. Es ist sauber, weil Sie die statische create-Methode wird verwendet, in der App_Start\Startup.Auth.cs bei der bootstrapping-Anwendung mit Microsoft.OWIN Kontext.
Der einzige Nachteil an diesem Ansatz ist Sie am Ende speichern Sie die E-mail zweimal.... Das ist nicht gut!
InformationsquelleAutor der Antwort Nabster
Wie haben Sie wahrscheinlich herausgefunden (und auch zu erwarten war), ASP.NET Identity 2.0.0, veröffentlicht im März 2014, ergänzt diese Funktionalität in das framework.
Ankündigung: http://blogs.msdn.com/b/webdev/archive/2014/03/20/test-announcing-rtm-of-asp-net-identity-2-0-0.aspx
Vollständige Beispiel-und tutorial, einschließlich der account-Bestätigung: http://www.asp.net/identity/overview/features-api/account-confirmation-and-password-recovery-with-aspnet-identity
InformationsquelleAutor der Antwort Vincent Sels