Ich verwende den ASP.NET SQL-Mitgliedschaftsanbieter. Also, es gibt eine aspnet_Users
Tabelle, die Details zu jedem meiner Benutzer enthält. (Tatsächlich scheint die aspnet_Membership
Tabelle die meisten der tatsächlichen Daten zu enthalten).Verwenden Sie ASP.NET SQL-Mitgliedschaftsanbieter, wie speichere ich meine eigenen Benutzerdaten?
Ich möchte jetzt einige Benutzerinformationen in meiner Datenbank speichern, also dachte ich, ich würde nur eine neue Tabelle mit einer UserId
(GUID) -Spalte und eine FK-Beziehung zu aspnet_Users
erstellen. Allerdings habe ich dann festgestellt, dass ich nicht leicht Zugriff auf die UserId
bekommen, da es nicht über die Mitgliedschaft API ausgesetzt ist. (Ich weiß, ich kann es über die ProviderUserKey
zugreifen, aber es scheint, wie die API abstrahiert die interne UserID
zugunsten der , und ich möchte nicht zu weit gegen den Strich gehen).
Also, ich dachte, ich sollte stattdessen eine LoweredUserName
Spalte in meinem Tisch, und erstellen Sie eine FK Beziehung zu aspnet_Users
, dass die Verwendung. Bzzzt. Wieder falsch, denn während aspnet_Users
die LoweredUserName
enthält, enthält es auch die ApplicationId
- also, um meine FK-Beziehung zu erstellen, müsste ich auch eine ApplicationId
Spalte in meiner Tabelle haben.
Zuerst dachte ich: Gut, ich habe es nur mit einer einzigen Anwendung zu tun, also werde ich einfach eine solche Spalte hinzufügen und ihr einen Standardwert geben. Dann erkannte ich, dass die ApplicationId
eine GUID ist, also wäre es ein Schmerz, dies zu tun. Nicht hart genau, aber bis ich meine DB ausrollen kann ich nicht vorhersagen, was die GUID wird.
Ich habe das Gefühl, dass ich etwas vermisse oder Dinge falsch mache. Was soll ich tun angenommen zu tun?
Und auch du +1. Tippcodeblöcke bekommen Aufmerksamkeit. ;-) –
Danke, aber ich denke nicht, dass die Daten, die ich speichern muss, gut im serialisierten Format sitzen würden. Ich muss Joins mit verschiedenen anderen Tabellen machen, die ich bereits in meiner Datenbank habe. Ich würde es vorziehen, meine Benutzerdaten in Tabellen zu haben, gegen die ich effizient Abfragen ausführen kann. Obwohl ich eine Verwendung für den Profilspeicher sehen kann, passt es nicht zu meiner Situation. +1 sowieso. –