2012-06-04 36 views

Trả lời

39

đơn giản,

string Name = new System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent()).Identity.Name; 

HOẶC

string Name = System.Environment.UserName 

HOẶC

string Name = Environment.GetEnvironmentVariable("USERNAME"); 

HOẶC

string Name = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 

wor ks :)

+5

Và không có AD liên quan nào hoàn toàn vô dụng ở đây (nó không theo dõi người dùng hiện tại là ai - sau khi đăng nhập AD không thực sự được hỏi quá nhiều trong một phiên). – TomTom

+5

Tôi có một trang web và tôi đang cố gắng lấy tên người dùng đã đăng nhập vào Windows và không có điều nào ở trên cho tôi biết rằng:/ – SearchForKnowledge

+2

Cảm ơn bạn rất nhiều. Tôi đã tìm kiếm mọi lúc. –

25

Nếu bạn đang ở trên .NET 3.5 trở lên, bạn có thể sử dụng:

// set up domain context 
PrincipalContext ctx = new PrincipalContext(ContextType.Domain); 

// find current user 
UserPrincipal user = UserPrincipal.Current; 

if(user != null) 
{ 
    string loginName = user.SamAccountName; // or whatever you mean by "login name" 
}  

Các S.DS.AM mới làm cho nó thực sự dễ dàng để chơi xung quanh với người dùng và nhóm trong AD!

Tài liệu tham khảo:

+2

là công trình này trong môi trường máy chủ của khách hàng – Sunil

+3

@ user1306094: hoạt động này trong bất kỳ môi trường nào mà bạn có Active Directory tại chỗ. –

+0

Xin chào Công việc của mình bên trong Miền. Cách làm cho nó hoạt động trong máy chủ khác nhau hoặc bên ngoài Miền – Sunil

1
System.DirectoryServices.AccountManagement.UserPrincipal.Current.Name 

này cũng đang làm việc cho tôi! Cảm ơn

Các vấn đề liên quan