Ich mache eine einfache ASP.NET-Webseite für meine Schulorganisation mit VS2010. Wenn ich "Neue Website" wähle, stelle ich fest, dass Visual Studio bereits eine Datenbank für die Verwaltung von Mitgliedschaften eingerichtet hat. Ich habe auch meine eigene Datenbank (MyDatabase), die ich für die Website verwenden muss, die Informationen über die Mitglieder der Organisation enthält (z. B. E-Mail, Telefonnummer usw.)Referenz ASP.NET-Mitgliedschaftsdatenbank in einer anderen Datenbank
Ich muss einen Weg haben um herauszufinden, wer der aktuell angemeldete Benutzer ist, und ihm erlauben, NUR seine Informationen (E-Mail, Telefonnummer) zu bearbeiten.
Die Art, wie ich es getan habe, ist:
- Fügen Sie ein Feld in MyDatabase namens "UserName" und verwenden Sie es als eine Art Fremdschlüssel aus der anderen Datenbank.
- Holen Sie den Benutzernamen des angemeldeten Benutzers
- zum Beispiel diesen Benutzernamen für meine Fragen verwenden:
// (PseudoCode)
String loggedInUser = MembersDatbase.GetLoggedInUser();
var MemberInfo = SELECT * FROM MyDatabase.Users WHERE UserName=loggedInUser;
-Dann der angemeldete Benutzer nur Zugriff auf ihre Informationen haben.
Ich bin mir über den Code noch nicht sicher, aber ich könnte diesen Teil wahrscheinlich herausfinden. Ich bin mehr daran interessiert zu hören, ob es einen besseren Weg dafür gibt. Ich möchte die beiden Datenbanken NICHT zu einer einzigen Datenbank zusammenführen.
Danke.
das bricht die ganze Idee authenticatie/authorization steckbar zu haben, etwas, das sehr zentral in dem Membership-API ist –
@ Tim Mahy: Ich habe keine Notwendigkeit sehen, zu verwenden, um zwei separate Datenbanken in das OP-Szenario. Ich bin mir nicht sicher, was genau du mit 'Pause' meintest. – gbs
es ist eine Provider-konfigurierbare API, durch die Verwendung von Implementierungsdetails einer bestimmten Implementierung (SQLServer-Standardimplementierung) wird der gesamte vom Provider konfigurierbare Teil verworfen. –