как контролировать разрешение в asp.net - PullRequest
0 голосов
/ 16 апреля 2011

Привет: В моем приложении все содержимое сайта открыто только для входа в систему, то есть, если у меня есть следующие страницы:

Default.aspx
Document.aspx
xxx.aspx
....
SysConfig.aspx

, конечно, есть страница входа: login.aspx.

Все страницы, за исключением " login.aspx ", защищены, их может видеть только пользователь входа, а SysConfig.aspx просто открыт дляпользователь с типом «admin».

Так как это контролировать?

Например, когда пользователь входит в систему из файла login.aspx, я могу сохранить соответствующую информацию в «Сеанс».", то в" Default.aspx.cs "я могу использовать:

if(Session["user"]==null).....

Но если это так, я должен написать одинаковые коды на каждой защищенной странице (Document.aspx.cs / xxx.aspx.cs), мне интересно, есть ли простой способ?

В Java, я могу заставить его просто использовать перехватчик struts2, но я не знаю, как сделать это в asp.net.

Спасибо.

1 Ответ

1 голос
/ 16 апреля 2011

Добавьте это в ваш файл web.config в разделе system.web:

<authorization>
    <deny users="?"/>
</authorization>

Это предотвратит доступ неавторизованных пользователей к вашим файлам.

И для вашего администратора.установить доступ к SysConfig

<location path="SysConfig.aspx">
    <system.web>
        <authorization>
            <deny users="?"/>
            <allow roles="Admin"/>
        </authorization>
    </system.web>
</location>

Редактировать: Чтобы разрешить доступ к login.aspx анонимному пользователю, добавьте:

<location path="Login.aspx">
    <system.web>
        <authorization>            
            <allow users="*"/>
        </authorization>
    </system.web>
</location>
...