2010-06-28 3 views
2

폼 인증을 사용할 때 사용자를 가장 할 수 있습니까?양식 인증을 통해 코드에서 사용자로 가장

중요한 것은 통합 된 Windows 보안을 사용하고 사용자를 가장해야하는 내부 사이트와 사용자를위한 외부 로그인이 필요하다는 것입니다.

나는 주변을 둘러 보았고 John의 대답 here이 정말 좋지만, Forms 인증을 어떻게 혼합 할 수 있는지 알지 못합니다.

제안 사항?


편집

내가 <asp:Login /> 제어를 갖고 싶어하고이 컨트롤은 내가에 가장을 사용하려면 Windows 시스템으로 사용자의 동일한 세트가있는 Active Directory에 대해 인증합니다.

내 문제는 내가 <asp:Login /> 컨트롤에 제공되는 것과 동일한 사용자 이름과 키워드로 어떻게 impersoante 할 수 있는지 얻지 못한다는 것입니다.

+0

언급 된 대답은 나에게 꽤 평범한 것처럼 보입니다. 당신이 누락 된 것은 무엇입니까? 가장은 Windows 계정이 있고이 계정을 인증 (및 명의 도용)에 사용하고 있음을 의미합니다. 어쩌면 그것이 어떻게 작동하는지에 대한 좀 더 자세한 내용을 이해하는 데 도움이 될 것입니다. – tvanfosson

+0

@ tvanfosson, 그것을 조금 지우려고했다. –

답변

1

해당 솔루션이 작동하려면 사용자의 ID와 비밀번호에 액세스해야합니다. 나는 당신이 로그인 사용자 컨트롤을 사용하여 이것을 얻을 수 있다고 생각하지 않는다; 당신은 자신의 로그인 폼을 만들고 로그인 액션을 직접 처리해야합니다. 일단 인증 된 세션에서 사용자의 ID와 암호를 안전한 문자열에 보관하고 대신 내부 사이트에 액세스해야하는 경우 참조 된 예제의 Impersonator 클래스를 사용하여 자격 증명을 사용하여 가장합니다.

using (var context = Impersonator.LogOn(username, password)) 
    { 
     try 
     { 
     .... 
     } 
     finally 
     { 
     context.Undo(); 
     } 
    } 
+0

나는 그것이 그 길 이어야만했다는 것을 두려워했다. 어떤 방법이 있다면 알고 계십니까? 전체 사이트를 "가장 (impersonation)"모드로 전환 할 수 있습니까? –

+0

@Filip - 폼 인증을 사용하는 Windows 보안 토큰이 될 수 있다고 보장 할 수 없으므로 폼 인증을 사용하여 "기본 설정"없이 작동한다고 생각하지 않습니다. 가장을 필요로하거나 위임이 충분해야합니다. 즉, 내부 사이트를 실행하는 계정에 모든 사용자를 대신하여 작업을 수행 할 수있는 충분한 권한을 부여한 다음 어떤 사용자에게 작업해야 하는지를 간단히 말해줍니다. – tvanfosson

+0

@ tvanfosson, 불행히도 대표단으로 충분하지 않습니다. 우리가 호출하는 하부 시스템은 로그인 한 Windows 사용자를 사용할 것이므로 사용자를 가장해야합니다. 나는 물론 모든 전화에 위의 위장을 넣을 수는 있지만 여전히 번거 로움이 될 것입니다. –

관련 문제