2017-01-18 5 views
0

지난 며칠 동안 내 ASP 응용 프로그램 (devexpress xaf를 사용하여 개발 됨)에서 현재 사용자를 얻는 방법에 대한 많은 제안을 읽었지만 현재까지는 아무 것도 작동하지 않았습니다 .asp 응용 프로그램의 WindowsIdentity는 항상 NT AUTHORITY SYSTEM을 반환합니다.

WindowsIdentity.GetCurrent().Name 

의 반환 값은 항상 NT AUTHORITY \ SYSTEM입니다. this과 같은 제안을 시도했고 devexpress 포럼에서 몇 사람을 찾았습니다. 내가 작업을해야한다 생각했습니다 무엇

(나는 또한에 이상 imporsonation 설정을 시도했습니다

<system.web> 
    <authentication mode="Windows" /> 
    <identity impersonate="true" /> 
    <authorization> 
     <deny users="?" /> 
     <allow users="*" /> 
    </authorization> 
    </system.web> 

을 포함

  • 에 내 응용 프로그램의 web.config 설정입니다 거짓이지만 변경이 없음)

      IIS에서 내 사이트를 설정3210

enter image description here

같은 응용 프로그램 풀을 설정 Windows 인증 enter image description here

  • 를 사용하지만 결과는 항상 NT AUTHORITY \ 시스템 남아있다.

답변

0

"NT AUTHORITY \ SYSTEM"은 "Builtin \ Administrator"의 구성원이기 때문에 기본적으로 SYSADMIN 서버 역할이 부여됩니다. 기본적으로 로컬 시스템 계정은 로컬 Administrators 그룹의 구성원이므로 SQL Server의 sysadmin 그룹 구성원입니다.

가장을 사용하려면 web.config의 identity 요소에 impersonate = "true"를 설정하십시오.

<system.web> 
    <identity impersonate="true" /> 
</system.web> 

IIS에서 가장을 사용하거나 사용하지 않도록 설정할 수도 있습니다.

  1. 는 IIS에서 "인증"아이콘을
  2. 더블 클릭을 웹 응용 프로그램을 선택
  3. 선택 ASP.NET 가장
  4. 클릭 오른쪽 패널의 작업 아래 링크를 "사용" "사용 안함"또는 IIS에서.
  5. 그러면 web.config 파일이 자동으로 변경됩니다.

DefaultAppPool의 "Managed pipeline mode"를 "Classic"으로 설정하십시오.

는 응용 프로그램 코드는 이제 대신, 'NT AUTHORITY \ IUSR'계정을 사용하여 실행되는 응용 프로그램을 실행하고, 그 통지 'IIS AppPool을 \을 DefaultAppPool'

+0

감사합니다,하지만 같은 위의 스크린 샷에서 볼 수 이미 가장을 사용하도록 설정했습니다. 또한 코드 스 니펫을 더 명확하게 편집했습니다.나는 매니지드 파이프 라인 모드를 Classic으로 변경하려고 시도했지만 여전히 NT AUTHORITY \ SYSTEM을 얻습니다. 어디에서 'NT AUTHORITY \ IUSR'계정을 사용했는지 확인할 수 있습니까? – yiannis

+0

이 링크를 참조하십시오 .http : //csharp-video-tutorials.blogspot.in/2012/12/anonymous-authentication-and-aspnet.html –