1

Я создаю общий информационный портал в среде Active Directory/IIS/ASP.NET 4.5. Среди прочего, портал свяжется с многочисленными формами запросов персонала, в зависимости от того, для какой организации он предназначен (казино против племени за пределами казино). Я начал с формы запроса казино и после получения работы с электронной почтой я дошел до того момента, когда я работаю над проверкой подлинности. Все выложено с использованием главной страницы, для чего это важно.Проверка подлинности Windows в ASP.NET для определенной группы безопасности пользователя

Мой план проверки подлинности пользователя заключается в использовании проверки подлинности Windows для проверки пользователя, зарегистрированного на рабочей станции, а затем для проверки того, принадлежит ли пользователь к определенной группе безопасности, которую мы настроили специально для людей, чтобы иметь доступ к форма запроса. Обратите внимание: я не хочу блокировать весь сайт, а отдельные страницы на сайте. Кроме того, люди, которые могут получить доступ к форме запроса казино, не должны иметь доступ к общей форме запроса о племени и наоборот.

Я видел несколько способов достижения таких вещей, но ни один из них, похоже, не работает для того, что я делаю. После того, как вам рекомендуется использовать Trace.Warn(), а не Console.WriteLine(), мне удалось получить страницу, чтобы проверить личность зарегистрированного пользователя, что я вижу в результатах трассировки. Тем не менее, я сталкиваюсь с контрольно-пропускным пунктом, чтобы проверить его группы пользователей, а тем более проверить их, чтобы определить, принадлежат ли они определенной группе, которая должна иметь возможность видеть страницу. Каков наилучший способ для меня сделать это?

+0

Покажите свой код, чтобы мы могли видеть, как вы пытаетесь проверить группу. Или, по крайней мере, предоставить структуру, чтобы мы могли видеть, как должны выглядеть подписи методов. – mason

ответ

0

Если вы можете использовать проверку подлинности Windows непосредственно и хотите, чтобы обеспечить группе пользователь принадлежит, это довольно просто, если вы используете web.config и отдельные каталоги для каждого различных уровней безопасности.

Просто разместите формы запросов в отдельных подкаталогах, а не на одном.

Вы могли бы установить структуру каталогов для вашего веб-приложения, такие как это

My web application root 
|__ web.config 
    |__ Sub directory1 
     |__ web.config 
    |__ Sub directory2 
     |__ web.config 

В web.config в корневой каталог вашего веб приложения, вы могли бы предоставить больше доступа и группы Secure группы 1, Защищенная группа 2, группа безопасности 3 сможет видеть страницы в корне.

<system.web> 
    <authentication mode="Windows" /> 
    <authorization> 
     <allow roles="Secure group 1, Secure group 2, Secure group 3" /> 
     <deny users="*, ?" /> 
    </authorization> 
    ... 
</system.web> 

В настоящее время под Суб каталог directory1, вы могли бы ограничить это Secure группы 1 и предотвратить любые другие

<system.web> 
    <authorization> 
     <allow roles="Secure group 1" /> 
     <deny users="*, ?" /> 
    </authorization> 
</system.web> 

И так далее. Любые страницы в этом подкаталоге не будут доступны для просмотра пользователям без этой группы.

Он становится гораздо более привлекательным, если вы хотите напрямую посмотреть на членство в группе и отрицать его в коде.

Чтобы включить проверку подлинности Windows (в IIS)

Перейти к IIS менеджер и открытой аутентификации для веб-приложения

enter image description here

Отключить другие методы аутентификации, за исключением проверки подлинности Windows

enter image description here

+0

Не позволяет требовать настройки базы данных? Это то, над чем я пытаюсь избежать на этом этапе. –

+0

Нет, если вы используете _Windows Authentication_. Часть базы данных обычно приходит, когда вы используете членство в ASP.NET и Forms Authentication – Kirk

+0

Я добавил краткий обзор этого в IIS. – Kirk

Смежные вопросы