Ни один элемент в исходном документе не соответствует /configuration/system.web/authorization/

У меня есть следующая проблема при преобразовании моего Web.Config:

Ни один элемент в исходном документе не соответствует '/configuration/system.web/authorization/allow[@roles='WhateverGroupNameRenamedForProd']'

Вот мой Web.Config:

 <system.web>
<compilation targetFramework="4.5.2" debug="true" />
<httpRuntime targetFramework="4.5" />
<authorization>
  <allow roles="WhateverGroupName" />
  <deny users="*" />
</authorization>

И Web.Production.Config:

<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<authorization>
  <allow roles="WhateverGroupNameRenamedForProd" xdt:Transform="SetAttributes" xdt:Locator="Match(roles)"/>
</authorization>

What I'm doing wrong? Thanks in advance :)


person Carlos    schedule 31.10.2016    source источник


Ответы (1)


Для тех, кто уже заинтересован, я нашел и исправил проблему: в основном это было в SetAttributes:

Мой старый код:

<allow roles="WhateverGroupNameRenamedForProd" xdt:Transform="SetAttributes" xdt:Locator="Match(roles)"/>

Следует заменить на:

<allow roles="WhateverGroupNameRenamedForProd" xdt:Transform="SetAttributes(roles)"/>

Затем вы должны указать имя атрибута в SetAttributes, в моем случае это были «роли».

person Carlos    schedule 31.10.2016
comment
Вы должны понимать, что означает xdt:Locator=Match(roles) и почему это не сработало: Найдите элемент в исходном файле с указанным значением для ролей (например, WhateverGroupNameRenamedForProd), затем выполните трансформировать (SetAttributes). Поскольку элемент <allow в исходном файле имел значение роли WhatevetGroupName, оно не совпадало. - person XouDo; 24.03.2021