[Gelöst]Funktion ShortUserID --> CU 418

22. Oktober 2012 14:17

Hallo Zusammen

Ich bin noch etwas neu in Navision und habe folgende Frage. Beim Migrieren von Codeteilen aus NAV2009 nach NAV2013 hab ich die Funktion ShorUserID (Codeunit Login Management CU418) entdeckt und kann nicht ganz folgen was diese macht:


IF STRPOS(UserID,'\') IN [0,STRLEN(UserID)] THEN
IF STRLEN(UserID) <= 20 THEN
EXIT(UserID)
ELSE
EXIT('')
ELSE
EXIT(COPYSTR(UserID,STRPOS(UserID,'\') + 1,20));
[/i][/i]

Sollte die nicht eher folgendermassen aussehen?


IF STRPOS(UserID,'\') IN [0,STRLEN(UserID)] THEN
EXIT(COPYSTR(UserID,STRPOS(UserID,'\') + 1));
ELSE
IF STRLEN(UserID) <= 20 THEN
EXIT(UserID)
ELSE
EXIT('') [/i]

Für Hinweise und Erklärungen bin ich euch sehr dankbar!
Liebe Grüsse
Zuletzt geändert von martin77 am 24. Oktober 2012 14:24, insgesamt 2-mal geändert.

Re: Funktion ShortUserID --> CU 418

22. Oktober 2012 14:26

Hallo,

die macht aus 'Domäne\Userid' nur 'UserId'.

Gruß, Fiddi

Re: Funktion ShortUserID --> CU 418

22. Oktober 2012 14:33

Hallo Fiddi

Vielen Dank für Deine rasche Antwort. Dass Sie das macht denke ich mir, aber was ich nicht verstehe ist der Aufbau der Funktion...

Die erste Zeile prüf ob ein '\' vorkommt....falls keines vorkommt macht Sie die letzte Zeile...EXIT(COPYSTR(UserID,STRPOS(UserID,'\') + 1,20))...das geht ja dann gar nicht, oder sehe ich das falsch?

Danke für Deine Unterstützung im Voraus!


IF STRPOS(UserID,'\') IN [0,STRLEN(UserID)] THEN
IF STRLEN(UserID) <= 20 THEN
EXIT(UserID)
ELSE
EXIT('')
ELSE
EXIT(COPYSTR(UserID,STRPOS(UserID,'\') + 1,20));[/i][/i]

Re: Funktion ShortUserID --> CU 418

22. Oktober 2012 14:42

falls keines vorkommt macht Sie die letzte Zeile


Nein, falls eines vorkommt geht er in die letzte Zeile. Den true Teil führt er nur aus, wenn Strpos(UserId,'\') =0 (nicht vorhanden) oder Strlen(UserId) (das letzte Zeichen ist, sprich nur die Domäne ist)

Gruß, Fiddi

Re: Funktion ShortUserID --> CU 418

22. Oktober 2012 14:48

Manchmal dauert es etwas länger...
aber jetzt hab ich's verstanden :-D

Vielen Dank!
Gruss, Martin

Re: Funktion ShortUserID --> CU 418

22. Oktober 2012 14:56

Muss mal blöd fragen: Wofür brauch man das?

Ist es nicht eher problematisch nur auf den Usernamen ohnen Domain zu kürzen? Im AD kann man ja schließlich Vertrauensstellungen aufbauen, womit theoretisch zwei User mit gleichem Namen aber unterschiedlicher Domain (Dom1\hmeier und dom2\hmeier) aufgrund von Gruppenrechten Rechte in einem AD/SQL-Server/NAV haben könnten und somit nicht mehr zu unterscheiden wären.

Oder besteht da keine Gefahr?

Volker

Re: Funktion ShortUserID --> CU 418

22. Oktober 2012 14:58

Muss mal blöd fragen: Wofür brauch man das?


das war in 2009 aber noch anders.

Gruß, Fiddi

Re: Funktion ShortUserID --> CU 418

22. Oktober 2012 15:10

vsnase hat geschrieben:Muss mal blöd fragen: Wofür brauch man das?

Ist es nicht eher problematisch nur auf den Usernamen ohnen Domain zu kürzen? Im AD kann man ja schließlich Vertrauensstellungen aufbauen, womit theoretisch zwei User mit gleichem Namen aber unterschiedlicher Domain (Dom1\hmeier und dom2\hmeier) aufgrund von Gruppenrechten Rechte in einem AD/SQL-Server/NAV haben könnten und somit nicht mehr zu unterscheiden wären.

Oder besteht da keine Gefahr?

Volker


Ein Geschäft mit mehr als einer Domäne (mal DMZ aussen vor) sind wohl für NAV zu groß ;)

Re: Funktion ShortUserID --> CU 418

23. Oktober 2012 08:26

Also ich finde das nicht ganz so weit hergeholt. Es gibt ja wohl genug Firmen, die international arbeiten und deshalb schon mehrere Standorte haben, was manche auch über verschiedene Domains lösen. Dann gibt es ja auch noch Firmenkäufe/-zusammenschlüsse, bei denen (wenigstens zeitweise) mehrere bestehende Domains verbunden werden müssen. Das soll man mit NAV nicht machen können? Oder dafür ist NAV zu klein bzw. die Firma zu groß? Nach meinem Kenntnisstand wird NAV ja auch bei Firmen mit mehreren Mrd. Umsatz eingesetzt. Da paßt was nicht.

Volker

Re: Funktion ShortUserID --> CU 418

23. Oktober 2012 09:25

@vsnase:
Das Problem tritt ja nur auf, wenn du Benutzer 'Domäne1\Müller' und 'Domäne2\Müller' hast.

Gruß,Fiddi

Re: Funktion ShortUserID --> CU 418

23. Oktober 2012 09:26

fiddi hat geschrieben:@vsnase:
Das Problem tritt ja nur auf, wenn du Benutzer 'Domäne1\Müller' und 'Domäne2\Müller' hast.

Gruß,Fiddi


Deswegen werden in größeren Unternehmen öfters die Domänenzugehörigkeit im Accountnamen selbst integriert. Somit verhindert man diese Art von "Kollision".