Domain Authentifizierung mit Coldfusion

spaceman007

Aktives Mitglied
Hi'all

hab wiedermal Ärger mit Coldfusion... Und zwar mit Umlauten...

Bis vor kurzem hatten wir bei unserer Applikation ein ASP-Script welches die Autentifizierung über die Domain erledigte.
Es wurde also angefragt, ob der entsprechende User in der Domain bekannt ist, wenn ja, wurde er reingelassen, wenn nein stellen wir ihn wieder auf die Strasse.

Also, nun haben wir dieses Script ersetzt durch die cfntauthenticate Komponente von Coldfusion ( lange Geschichte, Historisch so, warum ist egal, gehört noch viel mehr dazu, muss so sein )

Funktioniert eigentlich Tip-Top... ausser bei Usernamen und Passwörtern die einen Umlaut haben.

Wir habe schon überlegt ob die CF-Komponente Username und Passwort als UTF-8 schickt und mit einem ISO-String auf dem Domaincontroller verglichen wird oder so irgend etwas komisches, oder der String wird von CF nicht richtig konvertiert wenn er geschickt wird... oder oder oder...

ist schon jemand über dieses Problem gestolpert?

Thanks for Info!

Gruss

Spaceman007




ASP - Code
CODE
[...]
Dim dso, oDomain
Set dso = GetObject("WinNT:")
verifyDomainLogin = False

On Error Resume Next
Set oDomain = dso_OpenDSObject("WinNT://" & "DOMAIN", "DOMAIN\username, password,", 1)
If Err.Number <> 0 Then
verifyDomainLogin = False
Else
verifyDomainLogin = True
End If
response.Write( verifyDomainLogin )
[...]







ColdFusion - Code

CODE
[...]
<cfntauthenticate
domain="DOMAIN"
username="#form.Username#"
password="#form.Password#"
result="authresult">

<cfoutput>#authresult.auth#</cfoutput>
[...]

 
Evtl. sollte nicht so oft die Nacht durcharbeiten aber ich habe dein Anliegen noch nicht wirklich gepeilt.

Ein String soll geprüft werden ob er wo immer auch schon existiert. Aber es müssen etwaige Umlaute abgefangen werden. Da das ja nur 6 Umlaute seine können könntest du die beide String erst mit REPLACE verwursten und dann erst vergleichen. Es sei denn, es kommen noch weitere Zeichen wie"?" oder "&" etc. Dann wirds aufwendiger.

Gruß Ronny
 
Hi Ronny...

jo, meine Erläuterungen lassen Spielraum offen, sorry..

also hier das Szenario:
- User öffnet webapplication und möchte sich einlogen mit username und passwort
- dieses wird zum cf-server geschickt.
- cf-server fragt dann den domaincontroller an, ob das eingegebene username:passwort-paar gültig ist.
- domaincontroller liefert ein true oder false zurück

und hier das problem:
- wenn der user einen username oder ein passwort mit einem Umlaut hat, bekomme ich immer ein false vom domain controller zurück (mit dem cfntauthenticate ) mit dem ASP klappt's problemlos.

Das mit den Strings vergleichen macht der Domaincontroller (die vom cf-server angefragten usernames und passwörter mit den userdaten die er selber hat)

nix mit replace und so
smile.gif


und das mit iso und utf-8 war auch auf dem domaincontroller... Angenommen der cf-server schickt username und passwort mit in utf-8 format und der domaincontroller hat bei sich die userdaten in ISO abgelegt, könnte es probleme geben da die Strings nicht gleich aussehen ( resp. nicht die gleichen checksummen ergeben )

rolleyes.gif

 
Hallo zusammen,

ich habe gerade dasselbe Problem mit Umlauten und bereits Coldfusion 10 in Verbindung mit einem Domänencontroller auf Basis Windows Server 2008. Hat jemand eine schlaue Idee, wie ich das gelöst kriege? Sobald ein Benutzername ein Umlaut drin hat, geht die Authentifizierung mit cfntauthenticate nicht mehr. Ich hab auch schon mehrere Versuche mit UTF-8 Codierung unternommen, jedoch immer erfolglos. Wäre super dankbar für eine Hilfestellung.

Gruss Tobi
 
Zurück
Oben