문제

우리 회사는 우리가 마무리하는 큰 응용 프로그램을 가지고 있습니다. 인증을위한 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:

현재 스레드를 시작한 사람의 사용자 이름을 얻습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top