사용자 로그인하십시오
-
05-07-2019 - |
문제
우리 회사는 우리가 마무리하는 큰 응용 프로그램을 가지고 있습니다. 인증을위한 Active Directory가있는 백본으로 WCF를 사용합니다. 인증 모델이 Windows이므로 사이트에 로그인하려면 도메인의 일부 여야하므로 두 사이트 중 하나에 완벽하게 작동합니다. 내가 가지고있는 질문은 외부에 액세스 할 수있는 다른 사이트와 관련이 있습니다. ClientCredentials.windows.clientCredentient를 설정하여 광고 사용자를 가장 할 수 있도록 특정 사용자/패스를 사용하여 프록시 호출을 위해 전체 보안 모델이 작동합니다. 이것은 모두 예상대로 정확하게 작동합니다.
내가 가진 문제는 웹에서 httpcontext.current.user.identity.name을 사용하여 Forms Authentication Piece에서 현재 로그인 한 사용자를 얻을 수 있지만이를 수행하려면 시스템을 확인해야합니다. 내가 현재 일하고있는 DLL. 우리의 기본 개체는 System.Web에 대해 모르는 단순한 클래스에서 나온 것입니다. 기본 객체 프로젝트 내부에 로그인 한 양식 사용자를 찾는 방법이 있습니까? 나는 System.security.principal을 시도했지만 내가 말할 수있는 것과 좋은 일을하지 않는 것에서 Windows 계정에 액세스 할 수 있습니다.
나는 단지 시스템을 참조하는 것입니다 .Web와 그것을 수행하는 것이지만, 그것은 실제로 Klugy에게 가장 좋은 옵션이 아니기 때문에 여기서 몇 가지 팁을 기대하고 있습니다.
해결책
Thread.CurrentPrincipal.Identity
똑같은 일을 할 것입니다 HttpContext.CurrentContext...
현재 실행 스레드와 관련된 ID를 반환합니다. 대부분의 경우 사용자*로그인합니다.
참고 : *대표단/가장 한 사람이 서비스 계정으로 실행중인 경우 스레드가 아래에있는 신분증의 계정을 반환하지만 귀하의 경우에는 컨텍스트 아이덴티티 전환을 수행하는 것처럼 들리지 않습니다.
다른 팁
문자열로서 사용자 이름이 충분하다면
Environment.UserName
// Environment.UserDomainName and MachineName can also be useful
에서 MSDN:
현재 스레드를 시작한 사람의 사용자 이름을 얻습니다.