2009-05-01 7 views
2

Derzeit habe ich eine Website (asp.net 3.5), die eine eindeutige ID für die Anmeldung verwendet. Ich werde es, wenn möglich, auf E-Mails umstellen müssen. Ich werde alle neuen Konten erstellen, damit ich die Mitgliedschaftstabelle löschen und alle Benutzerinformationen importieren kann.Mitgliedschaft wechseln von ID zu E-Mail

Wir wechseln von generischen Logins für Abteilungen zu einzelnen Accounts.

Alle Links oder Hinweise in die richtige Richtung würden sehr geschätzt werden.

+0

Scheint einfach genug. TU es. Um welche Art von Hilfe bitten Sie? – User

+0

Ist es eine Änderung von web.config? Ich sehe da ist ein Wert für uniqueEmail ist das die Einstellung? – JPJedi

+0

Ah, Sie verwenden Mitgliedschaft ... nun, wer weiß dann, wie es intern funktioniert ... Einfacher Mitgliedschaft manuell zu implementieren. – User

Antwort

2

Also hier ist, was Sie tun sollten. Wenn Sie eine komplette Benutzerbasis erstellen, löschen Sie einfach die aktuellen Benutzer und weisen Sie die Benutzer an, den neuen Benutzer mit einer E-Mail zu erstellen, solange Sie dies auf dem Anmeldeformular bestätigen. Nun, wenn Sie bereits eine Benutzerbasis haben, dann ist ein wenig komplizierter. Stellen Sie zuerst sicher, dass jeder aktuelle Benutzer über eine gültige separate E-Mail verfügt. Anschließend müssen Sie 2 Spalten in der Tabelle aspnet_Users ändern, die Spalten lauten UserName und LowedUserName. Das sollte einfach sein, wenn der erste Schritt wahr ist, tun Sie einfach eine Schleife für jede aspnetMembership Zeile, erhalten Sie die Spalte E-Mail und als UserName, dann erhalten Sie die Spalte LoweredEmail als LowedUserName.

Ta daaaaaa!

Jetzt haben Sie alles auf das neue Modell migriert, für neue Einträge, stellen Sie sicher, dass das Formular den Benutzernamen als eine E-Mail validiert, für die Sie RegEx verwenden können.

+0

Wow das ist gerade ein bisschen interessant geworden. Ich war in der Lage, den Schalter zu machen. DANKEN SIE JEDEN FÜR HILFE. Aber wie wir alle wissen, ändern sich die Dinge. Ist es möglich, die alten Konten in der DB zu behalten und einfach die neuen Konten, die E-Mail-basiert sind, hinzuzufügen? Es wäre also ein Hybrid aus alten Benutzer-IDs und dann den neuen E-Mail-Benutzer-IDs. E-Mails auf allen Konten wären auch einzigartig. Ich hoffe, dass ich das tun kann. und dann, wenn sie mit den alten Konten fertig sind und der Wechsel zur E-Mail-ID erfolgt ist, können wir die alten IDs löschen, um sie zu bereinigen. Klingt das hörbar? – JPJedi

+0

Möglicherweise haben Sie ein Problem, weil die E-Mail im neuen Konto mit der alten identisch ist. Wenn dies kein Constrain ist, gibt es einen SP, der mit dem asp_net-Mitgliedschaftssystem erstellt wurde und mit dem Sie neue Konten erstellen können und es sollte dasselbe sein. Die andere Sache, die Sie tun können, ist die Benutzer zu benachrichtigen, dass sie nach Datum xxx nur mit ihrer E-Mail-Adresse einloggen können, und wenn Sie dann eine Chance geben können, die E-Mail auf dem Konto zu ändern, wenn Sie umziehen bereit. – Oakcool