У меня есть веб-сайт ASP.NET, настроенный для проверки подлинности Windows для определенной доменной группы (MYDOMAIN \ MY_SITE_USERS). Я хочу добавить контроллер с некоторыми действиями, которые можно выполнять из специальной учетной записи Windows, без доступа к остальной части веб-сайта.
Итак:
~ ==> only MYDOMAIN\MY_SITE_USERS
~/DoSomething ==> only MYDOMAIN\MY_SITE_USERS
~/SpecialAction/Do ==> only MYDOMAIN\SPECIAL_ACCOUNT
Я видел другие ответы (используя location
в Web.Config), например:
<location path="~/SpecialAction/Do">
<system.webServer>
<security>
<authorization>
<add accessType="Deny" users="*"/>
<add accessType="Allow" users="MYDOMAIN\SPECIAL_ACCOUNT"/>
</authorization>
</security>
</system.webServer>
</location>
но моя проблема в том, что с вышеизложенным SPECIAL_ACCOUNT может получить доступ ко всем другим страницам, так как мне нужно добавить к общему:
<authentication mode="Windows" />
<identity impersonate="true"/>
<authorization>
<allow users="MYDOMAIN\SPECIAL_ACCOUNT" />
<allow users="MYDOMAIN\MY_SITE_USERS"/>
<deny users="?" />
<deny users="*" />
</authorization>
В противном случае MYDOMAIN \ SPECIAL_ACCOUNT вообще не сможет войти в систему.