Laden...

CreateNewUserWizard / Login mit Datenbank verbinden

Erstellt von miketech vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.976 Views
M
miketech Themenstarter:in
82 Beiträge seit 2005
vor 18 Jahren
CreateNewUserWizard / Login mit Datenbank verbinden

Hi zusammen,

ich habe eine bereits existierende Datenbank mit einer User-Table.

Nun möchte ich den CreateNewUserWizard und ein Login-Feld mit der Datenbank verbinden. Standardmäßig verwendet ASP.NET ja so eine interne Datenbank.

Wie kann ich das nun mit meiner externen Datenbank verbinden? Muss ich dafür einige Methoden der WebForm-Elemente überschreiben? Also z.B. so Events wie LoginButton_Click?

Oder muss ich so einen eigenen Membership Provider bauen?

Ich habe bereits etwas Doku der MSDN gelesen, aber komme nicht wirklich weiter.

Wofür ist denn überhaupt dieser Membership Provider? Verstehe ich das richtig, dass ich hier einfach einen Provider speziell für meine Datenbank baue, den ich dann überall wiederverwenden kann?

Gruß

Mike

379 Beiträge seit 2004
vor 18 Jahren

Hallo Mike,

wenn ich dich richtig verstehe willst du die fertigen Controls zum Login, User Anlegen... von ASP.NET 2.0 verwenden.
Willst du nicht den Standard-Membership-Provider verwenden der mit einer MS SQL Server 2005 Express Datenbank arbeitet die er selbstständig anlegt musst du einen eingenen Membership Provider anlegen.
Dieser erbt von einem Interface und implementiert dann Methoden wie CreateUser und ähnliches

Wofür ist denn überhaupt dieser Membership Provider? Verstehe ich das richtig, dass ich hier einfach einen Provider speziell für meine Datenbank baue, den ich dann überall wiederverwenden kann?

Ja so ist das zu verstehen.

ciao Anke

C
1.215 Beiträge seit 2004
vor 18 Jahren

Wenn Du als externe DB den SQL-Server oder eine andere DB verwendest, für die es bereits vorhandene Provider gibt, ist das kein Problem, da Du lediglich den ConnectionString des Providers ändern müsstest.

Ein MembershipProvider ist eine generalisierte Schnittstelle, über die ASP.NET mit verschiedenen Arten von DataStores kommunizieren kann. Verwendest Du einen speziellen DB-Typen, wirst Du Dir wahrscheinlich einen eigenen Provider schreiben müssen.

Grüsse
Cord

M
miketech Themenstarter:in
82 Beiträge seit 2005
vor 18 Jahren

Hi,

und wie erfahre ich, wie die Tabellenspalten heißen müssen, damit der Provider mit meiner Tabelle klarkommt? Oder muss ich die vielleicht gar nicht umbenennen, sondern kann irgendwo festlegen, wie die Spalten bei mir heißen?

Gruß

Mike

C
1.215 Beiträge seit 2004
vor 18 Jahren

Klar kannst Du die Cols benennen, wie du willst.
Für die korrekte Zuordnung ist dann ja Dein Provider zuständig, der wissen muss, welches Feld beispielsweise den Username und welches die Emailadresse beinhaltet.

Grüsse
cord

M
miketech Themenstarter:in
82 Beiträge seit 2005
vor 18 Jahren

Hi,

naja mir gings mehr darum den vorhandenen Provider von Microsoft direkt zu verwenden und dort nur die Spaltennamen umzubenennen. Oder geht das nicht, so dass ich in jedem Fall einen eigenen Provider schreiben muss, wenn ich eine eigene Tabelle habe?

Gruß

Mike

379 Beiträge seit 2004
vor 18 Jahren

Soweit ich weiß musst du wirklich einen eigenen Provider schreiben wenn du eine eigene DB verwenden willst.

ciao Anke

N
4.644 Beiträge seit 2004
vor 18 Jahren

Du kannst doch auch den vorhanden Provider erweitern ( davon ableiten ) und in den Methoden für LogIn ( weiß nicht genau ob die so heißen ) implementierst Du Deine zusätzlichen Anforderungen. So habe ich dies auch mal umgesetzt.

C
1.215 Beiträge seit 2004
vor 18 Jahren

Nein, es ist definitiv nicht möglich, z. B. dem SqlMembershipProvider anders lautende Tabellenstrukturen zu übergeben. Es werden ja auch der Spaltentyp und deren Grösse verwaltet.
Du musst in diesem Fall einen eigenen Provider schreiben.

Wenn Du das tun solltest, würdest Du sicher keinen schlechten dienst leisten, wenn Du einen Provider schriebest, der solcherlei Möglichkeiten beinhaltet, so dass eine vorhandene Tabelle möglicherweise für den Provider verwendet werden kann.

Grüsse
Cord

M
miketech Themenstarter:in
82 Beiträge seit 2005
vor 18 Jahren

Ok, prima danke schön!

Gruß

Mike