[C#] C #을 사용하여 .NET에서 현재 사용자 이름을 얻는 방법은 무엇입니까?

C #을 사용하여 .NET에서 현재 사용자 이름을 얻는 방법은 무엇입니까?



답변

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


답변

사용자 네트워크에 있다면 사용자 이름이 달라집니다.

Environment.UserName
- Will Display format : 'Username'

오히려

System.Security.Principal.WindowsIdentity.GetCurrent().Name
- Will Display format : 'NetworkName\Username'

원하는 형식을 선택하십시오.


답변

속성을 사용해보십시오 : Environment.UserName.


답변

Environment.UserName에 대한 문서는 약간 충돌하는 것 같습니다.

Environment.UserName 속성

같은 페이지에 다음과 같이 표시됩니다.

현재 Windows 운영 체제에 로그온 한 사람의 사용자 이름을 가져옵니다.

현재 스레드를 시작한 사람의 사용자 이름을 표시합니다

RunAs를 사용하여 Environment.UserName을 테스트하면 처음에 Windows에 로그온 한 사용자가 아닌 RunAs 사용자 계정 이름이 제공됩니다.


답변

다른 답변은 완전히 두 번째이지만, 한 가지 방법을 강조하고 싶습니다.

String UserName = Request.LogonUserIdentity.Name;

위의 메소드는 사용자 이름을 DomainName \ UserName 형식으로 반환했습니다 . 예를 들어, EUROPE \ UserName

다음과는 다릅니다.

String UserName = Environment.UserName;

다음 형식으로 표시됩니다 : UserName

그리고 마지막으로:

String UserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

이는 주었다 NT AUTHORITY\IUSR(IIS 서버에서 응용 프로그램을 실행하는 동안) 및 DomainName\UserName(로컬 서버에서 응용 프로그램을 실행하는 동안).


답변

사용하다:

System.Security.Principal.WindowsIdentity.GetCurrent().Name

로그온 이름이됩니다.


답변

다음을 사용하려고 할 수도 있습니다.

Environment.UserName;

이것처럼 … :

string j = "Your WindowsXP Account Name is: " + Environment.UserName;

이것이 도움이 되었기를 바랍니다.