2011-05-03 6 views
0

클래식 ASP를 사용하는 Internet Explorer에서 Windows 도메인 이름을 가져와야합니다 (고전 ASP를 사용하면 다른 방법으로 시도 할 수 있습니다).윈도우 도메인 이름 받기

데이터베이스 행에 도메인 이름을 삽입하려면이 작업을 수행해야합니다.

다시 요약하면 특정 웹 페이지에 액세스하는 Internet Explorer에서 Windows 컴퓨터 도메인 이름을 검색해야합니다.

내가 할 수있는 아이디어와이를 수행하기위한 예가 있습니까? 가능합니까?

+0

Windows 인증을 사용하고 있습니까? 어떤 IIS 버전입니까? 웹 서버의 도메인과 사용자의 도메인에 관계가 있습니다 (동일한 도메인, 동일한 포리스트 등). –

+0

나는 그들이 실제로 사용하는 인증 시스템을 모르지만 다른 도메인에 대해 인증한다고 가정하고 그 정보를 저장하려고합니다. 클라이언트는 다른 정보와 함께 도메인 창 이름을 테이블에 삽입하려고합니다. 그들은 Internet Explorer 8을 사용하고 있습니다. ASP를 사용하려면 (예를 들어, .asp가 지원되지만 PHP는 지원되지 않는 IIS 서버가 있습니다) 기존의 이유로 ASP를 사용해야합니다. 나는 당신의 응답이 어떤 종류의 http 헤더 (예를 들어 사용 도구)에서 정보를 얻는 것처럼 간단하지 않다는 것을 이해한다. 내일 그 데이터에 대해 문의 할 것입니다. – rfc1484

답변

1

웹 브라우저는 기본적으로 웹 프로토콜 (Http, Html, SSL 등)을 사용합니다. 사용자 이름으로이 프로토콜을 정의하는 RFC에 익숙하다는 것을 알고 있습니다.

Windows 네트워크는 다른 프로토콜을 사용합니다. 도메인은 Windows 네트워크의 논리적 보안 경계입니다. 예, Windows의 최신 버전 도메인 보안은 Kerberos와 같은 표준 프로토콜을 사용합니다.

문제는 웹 브라우저가 클라이언트에 대해 웹 서버에 추가 정보를 보내지 않는다는 것입니다. 그것은 거대한 안보 문제가 될 것입니다. 따라서, 기본적으로 웹 브라우저 (IE조차)는 Http 요청에서 네트워크 보안 정보를 지원하지 않습니다.

웹 서버가 클라이언트 인증을 요구할 때 웹 브라우저는 서버에 더 많은 보안 정보를 제공해야합니다. 웹 서버에 필요한 인증 유형에 따라 브라우저는 다른 정보를 전송합니다. 예를 들어 HTTP 기본 인증에서 브라우저는 사용자 이름과 암호를 보냅니다.

제 생각에 웹 브라우저에서 Windows 네트워크 도메인 정보를 얻는 가장 좋은 방법은 브라우저가 Windows 인증을 사용하여 인증되도록하는 것입니다. 이것은 Microsoft가 표준 Http 프로토콜을 통해 Microsoft 네트워크 보안 정보를 푸시하는 특수 인증 모드입니다. 그러나, 순서대로이 작동하려면 :

  1. 사용자
  2. 클라이언트와 서버가 Windows 보안 관계
  3. IIS가 있어야합니다
  4. 웹 서버가 윈도우에서 IIS를해야합니다 Windows에서 IE를 실행해야합니다 수행해야합니다 Windows 인증을 사용하도록 설정하십시오.
  5. 클라이언트와 서버 간의 네트워크 경로에는 많은 제한 사항이 있습니다. 프록시와 방화벽은 일반적으로 IE 클라이언트가 IIS에서 Windows 인증을 사용하지 못하게합니다.

이 체크리스트를 사용하여 생활 할 수 있다면 http 헤더 중 하나에서 도메인 정보를 찾을 수있을 것입니다. domain \ user가 될 사용자 이름에서 파싱해야 할 수도 있습니다. 하지만 그 내용을 기억하지 못해 죄송합니다. 이것은 고전적인 ASP에서도 작동합니다. Windows 인증에 대한 자세한 내용은 http://www.iis.net/ConfigReference/system.webServer/security/authentication/windowsAuthentication

http://msdn.microsoft.com/en-us/magazine/cc301387.aspx 약 ASP에서 확인할 수 있습니다.NET는, 그러나 말한다 : 사용자에 대한

윈도우 인증을 사용하여 인증, 이름이 도메인 이름은 사용자가 등록 된 도메인 의 이름입니다 형태의 도메인 이름 \ 사용자 이름,의 (또는 도메인 계정이 아닌 로컬 계정 인 경우 컴퓨터 이름)이고 사용자 이름은 사용자 이름입니다.

클래식 ASP에서

,에서 Request.ServerVariables ("AUTH_USER") 또는에서 Request.ServerVariables ("LOGON_USER")

한 Windows 인증에 대한 대안은 기본 인증을 사용하여 로그인하는 사용자를 강제로 시도 자신의 domain \ user로 windows 자격 증명. 그러나 다른 보안 문제가 있으므로 SSL을 통해서만이 작업을 수행해야합니다. 그러나이 기술은 인터넷을 통해 작동하며 클라이언트 PC와 서버간에 보안 관계가 필요하지 않습니다. 이는 IE가 아닌 브라우저에서도 작동합니다.

+0

감사합니다. 문제 해결을 위해 충분한 정보를 가지고 있다고 생각합니다. – rfc1484

0

누구나 동일한 문제가 발생하는 경우, 여기에 구현 한 해결책이 있습니다 (Michael Levy가 말한 것).

IIS에서 Windows 통합 인증을 활성화해야합니다 (http://en.wikipedia.org/wiki/Integrated_Windows_Authentication).

당신은 그것을 수행하는 방법을 여기 읽을 수 있습니다 : http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/5f8fe119-4095-4094-bba5-7dec361c7afe.mspx?mfr=true

를 그 후에는 사용할 수 있습니다

클래식 ASP에서 Request.ServerVariables ("AUTH_USER")에서

또는 에서 Request.ServerVariables를 ("LOGON_USER를 ")

IE뿐만 아니라 다른 브라우저에서도 작동하는 것 같습니다.

올바른 방향으로 나를 가리켜 주신 Michael Levy에게 다시 한 번 감사드립니다.

+0

IE가 아닌 브라우저에서 사용자 이름/암호 대화 상자가 나타 납니까? Firefox가 이제 Windows 인증을 지원합니다 - http://support.mozilla.com/en-US/kb/Firefox%20asks%20for%20user%20name%20and%20password%20on%20internal%20 sites 및 Chrome이 곧 지원할 수 있습니다. - http://code.google.com/p/chromium/issues/detail?id=19 –