2010-07-26 5 views
1

Я пытаюсь контролировать доступ к моему сайту с помощью интегрированных окон.Управление доступом с помощью web.config

<?xml version="1.0"?> 
<configuration> 
<system.web> 
    <authentication mode="Windows"/> 
    <authorization> 
    <deny users="?"/> 
    <allow roles="DOMAIN\The_group_that_can_access_it"/> 
    </authorization> 
    ... 
</system.web> 
</configuration> 

За исключением этого, этот код не работает. Я могу получить к нему доступ, если я член этой группы или нет. Что не так?

Я просмотрел какой-то код и подумал, что мне нужно было переключить ? на *, но тогда это, кажется, просто отрицает все.

Спасибо,

+0

Вы отказали просто анонимному пользователю (?), В то время как вам нужно отказаться Каждый пользователь (*) – Mostafa

ответ

3

У вас нет явного отказать заявление, вам необходимо добавить следующую запись в конец деклараций:

<deny users="*" /> 

И вы можете удалить <deny users="?"/> который запрещающее неаутентифицированных пользователей , Финал <deny users="*" /> все равно откажет им. Тогда только ваша группа должна иметь доступ. Конечный результат должен быть:

<authorization> 
    <allow roles="DOMAIN\The_group_that_can_access_it"/> 
    <deny users="*"/> 
</authorization> 

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

+0

ну, я попробовал (как упоминалось) с помощью '*' вместо этого, но это все еще не сработало ... действительно ли порядок высказываний имеет значение? (разрешить роли во-первых, отрицать второе?) – baron

+1

Да, разрешите роли сначала, а затем отказать всем остальным. –

+0

Случайный, ваш ровно правый. Я бы не подумал, что это важно. благодаря – baron

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