IIS Express Windows 인증


245

VS2010에서 IIS Express를 사용하여 silverlight 응용 프로그램을 호스팅하려고합니다. 적절한 구성 설정을 수정할 수 있도록 applicationhost.config 파일을 수정했습니다. 내 web.config에 다음이 있습니다.

<location path="">
  <system.webServer>
    <security>
      <authentication>
        <anonymousAuthentication enabled="false" />
        <windowsAuthentication enabled="true" />
      </authentication>
    </security>
  </system.webServer>
</location>

인증되지 않았으며 도메인 서비스 호출이 사용자로서 null 레코드를 반환합니다. VS2010 SP1 베타를 설치 한 후이 기능을 사용할 수 있었지만 IIS Express에서만 작동하도록 노력하고 있습니다.

IIS Express에서 Windows 인증을 사용하려면 어떻게해야합니까? 누락 된 구성 설정이 있습니까?

답변:


276

옵션 -1 :

\My Documents\IISExpress\config\applicationhost.config파일 편집 및 windowsAuthentication 활성화 :

<system.webServer>
...
  <security>
...
    <authentication>
      <windowsAuthentication enabled="true" />
    </authentication>
...
  </security>
...
</system.webServer>

옵션 -2 :

다음과 같이 \ My Documents \ IISExpress \ config \ applicationhost.config에서 windowsAuthentication 섹션을 잠금 해제하십시오.

<add name="WindowsAuthenticationModule" lockItem="false" />

필요한 인증 유형에 대한 재정의 설정을 '허용'으로 변경

<sectionGroup name="security">
    ...
    <sectionGroup name="system.webServer">
        ...
        <sectionGroup name="authentication">
            <section name="anonymousAuthentication" overrideModeDefault="Allow" />
            ...
            <section name="windowsAuthentication" overrideModeDefault="Allow" />
    </sectionGroup>
</sectionGroup>

응용 프로그램의 web.config에 다음을 추가하십시오.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
      <security>
        <authentication>
          <windowsAuthentication enabled="true" />
        </authentication>
      </security>
    </system.webServer>
</configuration>

아래 링크가 도움이 될 수 있습니다 : http://learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/

VS 2010 SP1을 설치 한 후 Windows 인증이 작동하려면 옵션 1 + 2를 적용해야 할 수 있습니다. 또한 IIS Express applicationhost.config에서 익명 인증을 false로 설정해야 할 수도 있습니다.

<authentication>

            <anonymousAuthentication enabled="false" userName="" />

VS2015의 경우 IIS Express 응용 프로그램 호스트 구성 파일은 다음 위치에 있습니다.

$(solutionDir)\.vs\config\applicationhost.config

<UseGlobalApplicationHostFile>프로젝트 파일 의 옵션은 기본 또는 솔루션 별 구성 파일을 선택합니다.


감사. 그러나 위의 옵션을 시도했습니다. 그러나 여전히 Windows 인증을 사용할 수 없습니다. 이 기능을 사용하려면 VS2010 / SP1을 기다려야 할 것 같습니다.
Mark

3
옵션 2가 나를 위해 일했습니다. 그래도이 게시물을 찾는 데 시간이 걸렸습니다!
TodK

이 질문은 VS2010 sp1이 나온 이후 더 이상 적용되지 않습니다. sp1을 설치하지 않고 작동 시키려고했습니다. 내 생각에 sp1이 처음으로 알아낼 수 없었던 것을 설정하기 위해 무언가를하고 있다고 생각합니다. sp1을 설치하지 않은 것이 전제 조건이므로 실제로는 아니지만이 대답을 올바른 것으로 표시 할 수 있습니다.
Mark

1
고마워요! NTLM은 익명 인증을 비활성화하여 작동했습니다.
Rob Angelier

4
VS2015에서 IIS Express 구성은 솔루션 구조로 이동했습니다. 특히 $ (SolutionDir) \. vs \ config \ applicationhost.config는 슬프게도 MyDocuments \ IISExpress의 기존 구성을 고려하지 않으므로 모든 사용자 지정 내용을 읽어야합니다.
Tedford

401

Visual Studio 2010 SP1 및 2012에는 꺾쇠 괄호를 편집 할 필요없이 IIS Express에 대한 지원이 추가되었습니다.

  1. 아직 웹 기반 프로젝트를 마우스 오른쪽 단추로 클릭하고 "IIS Express 사용 ..."을 선택하십시오.
  2. 완료되면 웹 프로젝트를 선택하고을 눌러 F4속성 패널에 초점을 맞추십시오.
  3. "Windows 인증"속성을 사용으로 설정하고 "익명 인증"속성을 사용 안함으로 설정하십시오.

여기에 이미지 설명을 입력하십시오

이 솔루션이 vikomall의 옵션보다 우수하다고 생각합니다.

  • 옵션 # 1은 모든 IIS Express 사이트에 대한 전역 변경입니다.
  • 옵션 # 2는 web.config에 개발 부서를 남깁니다.
    • 또한 IIS 서버의 applicationHost.config에서 "잠금 해제"절차를 따르지 않으면 IIS 7.5에 배포 할 때 오류가 발생할 수 있습니다.

위의 UI 기반 솔루션은 IIS Express의 applicationHost.config에서 사이트 별 위치 요소를 사용하여 앱을 그대로 둡니다.

자세한 정보는 여기 ( http://msdn.microsoft.com/en-us/magazine/hh288080.aspx)


5
내가 놓친 것을 강조하기 위해-속성 컨텍스트 메뉴와 Alt-Enter바로 가기는 Windows 인증 사용 여부를 변경할 수있는 속성 창 세부 정보를 완전히 대체하지 않습니다. F4속성 창을 사용 하거나 클릭하면 실제로 속성이 표시됩니다.
Kaleb Pederson

나는이 기사를 통해 시작하기 전에 며칠 동안이 작업을 고투 : msdn.microsoft.com/en-us/library/gg703322%28VS.98%29.aspx는 기본적으로 원래의 게시물에 무시 다 "고 함께 시작 처녀 "applicationhost.config 및이 답변에 따라 설정을 활성화하십시오. 마지막으로 Windows 인증을받습니다! 감사!!
DaveN59

.csproj에서 IISExpressWindowsAuthentication 설정을 'enabled'에서 disabled로 변경합니다. <IISExpressWindowsAuthentication> 사용 안함 </ IISExpressWindowsAuthentication>
Cameron Taggart

7
이 두 가지 옵션은 회색으로 표시되고 비활성화되어 있습니다. 왜 그런지 알아?
awl

1
IIS Express 구성에이 옵션이 있으므로 2 개의 옵션이 회색으로 표시됩니다. "그리고 그들은 회색으로 나타납니다
Micah Armantrout

9

booij boy의 답변을 바탕으로 제어판-> 프로그램-> 창 기능 켜기 또는--인터넷 정보 서비스-> 월드 와이드 웹 서비스-> 보안에서 "Windows 인증"기능을 확인했는지 확인하십시오.

또한 파이어 폭스 나 인터넷 익스플로러를 사용할 때 큰 차이가있는 것 같습니다. "Windows 인증"을 표시 한 후에는 IE에서만 작동합니다.


2
파이어 폭스에서 작동하게하기 : markmonica.com/2007/11/20/…
bees73


5

IISExpress 개발 환경과 관련하여 이러한 훌륭한 답변과 악명 높은 "system.web/identity@impersonate"오류를 방지하기 위해 applicationhost.config 파일에 다음 설정이 있는지 확인하면됩니다. .

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
    </system.webServer>
</configuration>

이렇게하면 개발 및 테스트 중에 유연성이 향상되지만 프로덕션 환경에서이 설정을 사용하는 것이 의미를 이해해야합니다.

유용한 게시물 :


우연히 이것에 완전히
착륙

2

IIS 관리자에서 사이트를 클릭하십시오. "콘텐츠보기"가 아닌 "기능보기"에 있어야합니다.

"기능보기"의 IIS 섹션에서 "인증"기능을 선택하고 클릭하십시오. 여기에서 Windows 인증을 활성화 할 수 있습니다. 이것은 web.config (...)의 설정에 의해 가능합니다 (스레드의 제안 중 하나에서 생각합니다).

그러나 web.config가 너무 많이 사용하고 싶지 않을 수도 있습니다. 그런 다음이 스레드는 너무 도움이되지 않으므로이 답변을 추가했습니다.


0

이 답변은 1) Visual Studio 2015 및 2로 업그레이드하기 전에 사이트에서 Windows 인증을 사용하는 데 사용하고 사이트에 /login.aspx파일이없는 경우에도 사이트로드를 시도하는 경우 에 도움이 될 수 있습니다.

appSettings사이트의 섹션에 다음 두 줄을 추가하십시오 Web.config.

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>

0

같은 메모-VS 2015에서 .vs \ config \ applicationhost.config가 보이지 않거나 사용할 수 없습니다.

기본적으로 .vs 폴더는 숨겨져 있습니다 (적어도 필자의 경우).

.vs 폴더를 찾을 수 없으면 아래 단계를 수행하십시오.

  1. 솔루션 폴더를 마우스 오른쪽 버튼으로 클릭하십시오
  2. '속성'을 선택하십시오
  3. 에서 Attributes섹션을 클릭합니다 Hidden(기본값은 선택 취소) 확인란을,
  4. '적용'버튼을 클릭하십시오
  5. '이 폴더, 하위 폴더 및 파일에 변경 사항 적용'옵션이 선택된 확인 창이 표시되면 '확인'을 누르십시오.

    를 제외하고 1 ~ 5 단계를 반복 step 3하십시오. 이번에 uncheck는 이전에 확인한 '숨김'옵션이 필요합니다 .

이제 .vs 폴더를 볼 수 있습니다.


0

위의 답변에서 모든 작업을 수행 한 후 Visual Studio를 관리자로 실행하지 않는 것으로 나타났습니다. 관리자로 실행 한 후 문제가 해결되었습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.