Вот что я пытаюсь сделать:
Мое (очень маленькое) веб-приложение предоставляет форму, которая будет использоваться публикой. В этой форме есть ссылка, которая должна быть видна только тем, кто был назначен на роль определенного отдела в моей компании: «Маркетинг» через Microsoft Active Directory. Это первый раз, когда я работал с Active Directory Microsoft И с любой формой аутентификации, поэтому, пожалуйста, будьте осторожны.
Я внес изменения в права доступа к сайту в IIS И в своем файле web.config, в корне добавил:
<authentication mode="Windows"/>
<authorization>
<allow roles="Marketing"/>
<deny users="*" />
</authorization>
А в коде страницы формы ссылка представлена следующим образом:
@if (User.Identity.IsAuthenticated)
{
<p>@User.Identity.Name</p>
<p></p>
@Html.ActionLink("Access to Backend", "Index", "Requests")
}
Я понимаю, что при этом вся форма становится недоступной для тех, кто находится за пределами роли, поскольку приведенный выше код не ограничивает проверку подлинности ссылкой, а применяется ко всему сайту (поскольку он находится на корневой уровень).
Структура сайта выглядит следующим образом:
--Form Page (open to public)
/Form (with hidden link to the Backend Page/Counts) -- needs to be hidden
---Backend Page (restricted to Marketing page)
/Counts
/Edit
/Delete
/Details
Как мне ограничить ее маленькой ссылкой, а затем ограничить доступ к внутренним страницам сайта теми, которые находятся на странице "Маркетинг"?