2011-05-06 2 views
0

우리는 우리의 웹 응용 프로그램에 보안 조정을 사용하므로 다음과 같은 노드가 필요하다 : 우리는 또한 변환을 할내 ASP.NET web.config의 사용자 정의 XML 노드/태그?

<location path="admin/employees" xdt:Transform="Replace" xdt:Locator="Match(path)"> 
    <system.web> 
     <authorization> 
      <allow roles="domain\role1,domain\role2"/> 
      <deny users="*"/> 
     </authorization> 
    </system.web> 
</location> 

<location path="admin/whatever" xdt:Transform="Replace" xdt:Locator="Match(path)"> 
    <system.web> 
     <authorization> 
      <allow roles="domain\role1,domain\role2"/> 
      <deny users="*"/> 
     </authorization> 
    </system.web> 
</location> 

알 수 있습니다. 역할은 우리가 가지고있는 다양한 환경 (개발자, 스테이징 및 프로덕션)과 다르므로 세 가지 구성 모두에서 변형을 구현하는 것은 지루합니다.

내가하고자하는 것은 부모 노드에 모든 위치 노드를 캡슐화하는 것입니다. 아마도 <locations>이라고합니다. 그렇게하면 각 위치 노드 대신 위치 노드에서 변형을 구현할 수 있습니다.

<locations xdt:Transform="Replace"> 
    <location path="admin/employees"> 
     <system.web> 
      <authorization> 
       <allow roles="domain\role1,domain\role2"/> 
       <deny users="*"/> 
      </authorization> 
     </system.web> 
    </location> 

    <location path="admin/whatever"> 
     <system.web> 
      <authorization> 
       <allow roles="domain\role1,domain\role2"/> 
       <deny users="*"/> 
      </authorization> 
     </system.web> 
    </location> 
</locations> 

이것이 가능합니까?

답변

0

배포 후에 실행할 사용자 지정 비트를 쓰지 않으려는 경우 MS 빌드 변환이 중단됩니다. 그렇습니다. 각 환경을 설정해야하는 것은 약간 지루하지만, 바로 지금 그것은 짐승의 본질입니다.

저는 이전에 Nant를 사용하여 변형 문제를 해결하고 정복했습니다. 좀 덜 지루한,하지만, 여전히 지루한.

나는 당신에게 더 좋은 이야기를하고 싶습니다.

위치를 사용하고 있으므로 폴더의 공통 비트를 설정하고 특정 web.config를 설정할 수도 있습니다. 여전히 지루하지만, 루트의 단일 web.config 파일보다 고통이 적을 수 있습니다.

관련 문제