Fragensteller
Passwort in SQL generieren

Allgemeine Diskussion
-
Hallo,
ich erstelle eine ASP.Net Seite und verwende für einen Login die Standard FormsAuthentication.
Nun versuche ich auf der der Datenbank selbst mit den vom aspnet_regsql.exe mitgelieferten Prozeduren Benutzer anzulegen. Dazu möchte ich das Passwort natürlich verschlüsselt hinterlegen.
Was mir noch fehlt ist ein Weg, wie ich ein solches Passwort generieren kann. Meine Seite benutzt als Hashmethode SHA1.
set @PasswordSalt = (select top 1 cast(N'' AS XML).value('xs:base64Binary(xs:hexBinary(sql:column("bin")))', 'nvarchar(128)') from (select hashbytes('SHA1', 'testSalt') AS bin) AS bin_sql_server_temp) set @Password = (select top 1 cast(N'' AS XML).value('xs:base64Binary(xs:hexBinary(sql:column("bin")))', 'nvarchar(128)') from (select hashbytes('SHA1', 'testPwd' + @PasswordSalt) AS bin) AS bin_sql_server_temp)
Will ich mich mit dem Benutzer über das Passwort "testPwd" anmelden gibt es aber kein Match und der Login schlägt fehl.Hat jemand einen Hinweis für mich dazu?
Danke!
- Bearbeitet Doriath21 Freitag, 16. Dezember 2011 10:25
- Typ geändert Robert BreitenhoferModerator Donnerstag, 29. Dezember 2011 11:04 Keine Rückmeldung des Fragenstellender
Alle Antworten
-
Wenn ich dich richtig verstehe, erzeugst du auf der Seite in .NET schon den Hash? Da weichen eventuell die Implementierungen voneinander ab.
Rein in T-SQL kann es so aussehen: siehe Thread
Ansonsten stürze dich auf den von Robert erwähnten login and membership providers.
-
Dann nochmal zur besseren Verständlichkeit.
Wenn ich eine ASP.Net seite erstelle, wird dort eine Loginfunktionalität mitgeliefert. Der Login greift auf Tabellen und Prozeduren zu, die ich mit der aspnet_regsql.exe in meiner Datenbank einfügen kann.
Nun möchte ich aber lediglich die Login-Funktionalität verwenden. Anlage und verwaltung der Benutzer geschiet auf dem SQL-Server selber. Das bedeutet, dass ich bei der Neuanlage eines Benutzers über SQL auch ein Passwort und einen Salt erstellen muss.
Geh ich dann auf die Website und benutze den Login, wird der Benutzer gegen meine Datenbank validiert und schlägt fehl.
Ich habe mich in der Richtugn erkundigt und habe gelesen, dass ASP.Net 2.0 standardmäßig einen SHA1-Hash verwendet bestehend aus einem Passwort und einem Hash. Den scheine ich über SQl falsch zu implementieren.
-
Und? Entweder du arbeitest kmoplett in T-SQL, da dein - wie auch immer eingesetzter - SHA-1 nicht funktioniert oder aber du benutzt den ASP-Standardmechanismus namentlich den Membership Provider.
btw, wahrschnlich installierst du mittels aspnet_regsql.exe genau selbigen.
P.S. Ein kurzes Beispiel, bzw. deine Code wäre ja nicht schlecht.
-
Ist es ein Vista mit .NET 2.0 und Sicherheitsupdate MS07-040?
Viele Grüße,
Bogdan
Ich bin gerne bei den Foren. Es kommt von Herzen. Es wird aber keine implizite oder sonstige Garantie für die geposteten Antworte / Informationen gewährt. Hier auch die Forenregeln. -
Hallo Doriath21,
Du kannst mittels CLR auch C#.NET innerhalb des SQL Servers verwenden. Somit könntest Du deinen Hash-Algorithmus in .NET schreiben und als DLL in den SQL Server hängen und von dort aus ansprechen. Dies macht das ganz etwas einfacher.
Hier mal ein Startpunkt:
http://msdn.microsoft.com/de-de/library/ms254498(v=vs.80).aspx
Gruß
asymetrixs -
****************************************************************************************************************
Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
****************************************************************************************************************Robert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.