2014-06-09 6 views
2

ASP.NET MVC 4를 사용하여 인트라넷 응용 프로그램을 개발 중입니다. 사용자 지정 폼 인증을 사용하고 있습니다. 사용자가 응용 프로그램에 액세스하면 사용자의 Windows 로그인 사용자 이름을 가져 와서 데이터베이스의 사용자 이름을 확인하려고합니다. 하지만 그 사용자 이름을 어떻게 가져갈 지 모르겠습니다. 내가 비주얼 스튜디오에서 실행할 때현재 Windows 로그인 사용자의 사용자 이름은 어떻게 얻습니까?

string CurLoggedInUsername = Environment.UserName; 

이 나에게 이름을 제공합니다,하지만 난 내 응용 프로그램을 호스팅하는 경우에는 이상한 값을 제공 IIS : 나는 다음과 같은 코드를 사용하여 그것을 가지고하려고합니다. 나는 또한 사용하려고 시도했다.

string CurLoggedInUsername = httpcontext.current.user.identity.name; 

그러나 사용하지 않았다. 인증 전에 사용자의 Windows 로그인 사용자 이름을 가져 오는 방법이 있습니까?

+0

[ASP.NET MVC3 인트라넷 응용 프로그램에서 로그인 한 사용자 이름 얻기] (http://stackoverflow.com/questions/6786380/getting-the-logged-in-username-in-asp-net-mvc3 -intranet-application) –

+2

Windows 인증을 사용하지 않는 이유는 무엇입니까? – Luthervd

+0

나는 Windows 인증을 사용하려고 이미 시도했지만 원치 않는 사용자 이름과 암호를 묻는 프롬프트를 보여줍니다. 나는 사용자가 내 로그인 페이지에 액세스 할 때 자신의 Windows 계정 사용자 이름을 얻고 내 DB에 대해 확인합니다. 자동 로그인에 false 플래그가 있으면 사용자 이름이 입력 된 로그인 페이지를 표시하고 사용자가 비밀번호를 입력 할 수 있도록 허용하면 자동 로그인에 대해 플래그가 true이면 대시 보드로 리다이렉트합니다. – CodeWarrior

답변

0

혼합 모드 인증을 고려해야 할 수도 있습니다. 나는. Windows 및 양식 인증. 것은 그들이 함께 잘 놀지 않는다는 것입니다.

다음 문서에서는 문제와이를 극복하는 방법에 대해 설명합니다. 이 기사는 IIS 7 통합 모드에서 401 챌린지 (Windows 인증)와 302 리디렉션 (폼 인증)이 호환되지 않는 방법과 두 가지 양식과 HTTP 파이프 라인 차단을 사용하여 사용자 세부 정보를 얻는 방법을 중심으로합니다. 필자는 대규모 공공 부문 클라이언트 (웹 폼 애플리케이션 임에도 불구하고)를 위해이 접근법을 성공적으로 사용했습니다. 나는 원칙들이 동일하다고 확신한다.

IIS 7.0 Two-Level Authentication with Forms Authentication and Windows Authentication

나는 코드 예제에서 Windows 인증 자격 증명을 찾기 위해 바로 이곳 제시를 추가하는 것을 잊었다. 잠시 지났기 때문에 머리 꼭대기에서 기억이 안납니다.