AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GetUserNameEx

Ein Thema von Luckie · begonnen am 29. Mär 2006 · letzter Beitrag vom 7. Mär 2010
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

GetUserNameEx

  Alt 29. Mär 2006, 09:01
Warum bekomme ich hier...
Delphi-Quellcode:
const
  NameUnknown = 0; // Unknown name type.
  NameFullyQualifiedDN = 1; // Fully qualified distinguished name
  NameSamCompatible = 2; // Windows NT® 4.0 account name
  NameDisplay = 3; // A "friendly" display name
  NameUniqueId = 6; // GUID string that the IIDFromString function returns
  NameCanonical = 7; // Complete canonical name
  NameUserPrincipal = 8; // User principal name
  NameCanonicalEx = 9;
  NameServicePrincipal = 10; // Generalized service principal name
  DNSDomainName = 11; // DNS domain name, plus the user name

function GetUserNameEx(NameFormat: DWORD;
  lpNameBuffer: LPSTR; var nSize: DWORD):Boolean; stdcall;
  external 'secur32.dllName 'GetUserNameExA';

function GetLoggedOnUserNameEx(fFormat: DWORD; var Username: String): DWORD;
var
  Size : DWORD;
  Buffer: array [0..1024] of Char;
begin
  Size := MAX_COMPUTERNAME_LENGTH + 1;
  if GetUserNameEx(fFormat, Buffer, Size) then
    SetString(Username, Buffer, Size);
  Result := GetLastError;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Username: String;
  err: DWORD;
begin
  err := GetLoggedOnUserNameEx(3, Username);
  if err = 0 then
    ShowMessage(Username)
  else
    ShowMessage(SysErrorMessage(err));
end;
...immer die Fehlermeldung:
Zitat:
Die angegebene Domäne ist nicht vorhanden oder es konnte keine Verbindung hergestellt werden
obwohl ich mich in einer Domain befinde und auch mit ihr verbunden bin? Es dauert auch ewig bis die Funktion zurückkehrt. Funktioniert es eventuell bei euch?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#2

Re: GetUserNameEx

  Alt 29. Mär 2006, 09:13
Zwei "Fehler" sind drin.

#1
Size := MAX_COMPUTERNAME_LENGTH + 1; MAX_COMPUTERNAME_LENGTH ist definiert mit 15.
Benutzernamen können länger sein.
Size muss die Länge deines Char-Arrays ohne #0 sein.
Bei deinem Beispiel 1024.

#2
Result := GetLastError; Den Rückgabewert solltest du von dem true/false von GetUserNameExA abhänig machen, da es mir auch schon passiert ist, dass die Funktion erfolgreich war, GetLasError aber trotzdem <> 0 war.

-edit-

Das Phänomen mit der langen Antwortzeit habe ich bei mir auch, ich denke mal, dass das Problem hierbei bei Domänen-controller liegt.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: GetUserNameEx

  Alt 29. Mär 2006, 09:21
Danke für die Tipps. Sieht jetzt so aus:
Delphi-Quellcode:
function GetLoggedOnUserNameEx(fFormat: DWORD; var Username: String): DWORD;
var
  Size: DWORD;
  Buffer: array [0..1024] of Char;
begin
  Result := 0;
  Size := sizeof(Buffer);
  if GetUserNameEx(fFormat, Buffer, Size) then
    SetString(Username, Buffer, Size)
  else
    Result := GetLastError;
end;
Fehlermeldung bleibt allerdings. Geht es denn bei dir?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#4

Re: GetUserNameEx

  Alt 29. Mär 2006, 09:26
Ja, bei mir geht's.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: GetUserNameEx

  Alt 29. Mär 2006, 09:38
Danke für die Routine Die Ergebnisse für die Werte 0 bis 11:
Code:
0 - 
1 - CN=Daniel Wischnewski,OU=User,OU=Office Ottobrunn,DC=gatenetwork,DC=office
2 - GATENETWORK\Daniel
3 - Daniel Wischnewski
4 - [email]daniel@gatenetwork.offi[/email]ce
5 - [email]daniel@gatenetwork.offi[/email]ce
6 - {aaaaaaaa-dddd-5555-yyyy-xxxxxxxxxxxx}
7 - gatenetwork.office/Office Ottobrunn/User/Daniel Wischnewski
8 - [email]daniel@gatenetwork.offi[/email]ce
9 - gatenetwork.office/Office Ottobrunn/User Daniel Wischnewski
10 - gatenetwork.office/Office Ottobrunn/User Daniel Wischnewski
11 - gatenetwork.office/Office Ottobrunn/User Daniel Wischnewski
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: GetUserNameEx

  Alt 29. Mär 2006, 09:44
Grml. Und warum bei mir mal wieder nicht?

OK, da es funktioniert, habe ich es gleich mal für die Code-Lib vorgeschlagen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: GetUserNameEx

  Alt 29. Mär 2006, 09:47
Zitat von Luckie:
OK, da es funktioniert, habe ich es gleich mal für die Code-Lib vorgeschlagen.
Ich habe mir auch schon überlegt, es hineinzustellen, nur warte ich die Ursache ab, wieso es nicht geht. Evtl muss ja irgendetwas dabei beachtet werden.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: GetUserNameEx

  Alt 29. Mär 2006, 09:50
Zitat von Luckie:
Grml. Und warum bei mir mal wieder nicht?
Bist Du Dir sicher, dass Dein Rechner auch korrekt am Netzwerk angemeldet ist - logst Du Dich an der Domaine ein?

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: GetUserNameEx

  Alt 29. Mär 2006, 10:07
Unter "Anmelden an" steht DATAWERK. Mein Benutzerprofil scheint aber lokal auf dem Rechner zu liegen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: GetUserNameEx

  Alt 29. Mär 2006, 18:39
Moin Luckie,

mit 2 klappt das bei mir sogar ohne Domänenzugehörigkeit, bei den übrigen erhalte ich 1332 (Zuordnungen von Kontennamen und Sicherheitskennungen wurden nicht durchgeführt)
Der Ort an dem das Profil liegt, spielt IMHO keine Rolle.
Das Problem könnte sein, dass Du Dich meist auch dann an einem Rechner anmelden kannst, wenn Du kein Netzwerk zur Verfügung hast, da dann mit dem gecachten Profil angemeldet wird.
Hast Du denn wirklich Netzwerkzugriff?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz