1

IIS Express 7.5에서 호스팅되는 node.js (WebMatrix를 통해)를 사용하여 간단한 사이트를 작성하려고했습니다. 통합 Windows 인증을 사용하고 싶습니다.iisnode 및 WebMatrix를 사용하여 Windows 인증 문제

applicationhost.config 비슷한 게시물에 설명되어 있습니다. 또한 web.config도 구성했습니다.

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

이제 때 요청이 자격 증명을 요청 사이트. 지금은 꽤 좋습니다. 그런 다음 올바른 도메인 자격 증명을 제공하고 오류가 발생했습니다. 401.1

신뢰할 수있는 영역의 사이트와 Fidler는 Kerberos 티켓이 제공한다고 말했습니다.

무엇이 잘못 되었나요?

내가 추적을 확인하고 다음과 같은 오류 있어요 :

<EventData> 
    <Data Name="ContextId">{00000000-0000-0000-3F03-0080000000F8}</Data> 
    <Data Name="ModuleName">WindowsAuthenticationModule</Data> 
    <Data Name="Notification">2</Data> 
    <Data Name="HttpStatus">401</Data> 
    <Data Name="HttpReason">Unauthorized</Data> 
    <Data Name="HttpSubStatus">1</Data> 
    <Data Name="ErrorCode">2147942485</Data> 
    <Data Name="ConfigExceptionInfo"></Data> 
</EventData> 
<RenderingInfo Culture="en-US"> 
<Opcode>MODULE_SET_RESPONSE_ERROR_STATUS</Opcode> 
<Keywords> 
    <Keyword>RequestNotifications</Keyword> 
</Keywords> 
<freb:Description Data="Notification">AUTHENTICATE_REQUEST</freb:Description> 
<freb:Description Data="ErrorCode">The local device name is already in use. (0x80070055)</freb:Description> 
</RenderingInfo> 

확인을, 나는 몇 시간 동안 문제를 알아 내려고 만 발견 된 그 규칙이나 웹에서 URL 재 작성 모듈를 제거합니다. 설정

다음
<rewrite> 
     <rules> 
      <!-- Don't interfere with requests for logs --> 
      <rule name="LogFile" patternSyntax="ECMAScript" stopProcessing="true"> 
       <match url="^[a-zA-Z0-9_\-]+\.js\.logs\/\d+\.txt$" /> 
      </rule> 

      <!-- First we consider whether the incoming URL matches a physical file in the /public folder --> 
      <rule name="StaticContent"> 
       <action type="Rewrite" url="public{REQUEST_URI}" /> 
      </rule> 

      <!-- All other URLs are mapped to the Node.js application entry point --> 
      <rule name="DynamicContent"> 
       <conditions> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="app.js" /> 
      </rule> 
     </rules> 
    </rewrite> 

모두 (app.js의 올바른 취급 제외) 잘 작동합니다

그래서, 질문 난 WebMatrix 용 원본 node.js 템플릿을 유지하고 그러한 오류없이 Windows 인증을 사용하는 방법은 무엇입니까?

또 하나의 질문은 node.js의 IIS 모듈 파이프 라인에서 수집 한 모든 컨텍스트 정보를 얻는 방법입니다.

답변