Как использовать Single Sign On в веб-приложении - PullRequest
1 голос
/ 20 марта 2009

У меня есть веб-приложение ASP.NET 2.0 (C #), в котором я хотел включить единый вход. Я хочу, чтобы только некоторые пользователи имели доступ ко всем страницам, а другие только несколько страниц. Какие изменения мне нужно внести в мой файл Web.config и какой код мне понадобится в моем коде для страниц?

Спасибо

1 Ответ

1 голос
/ 20 марта 2009

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

В качестве примера можно привести следующую структуру проекта:

  • LoginPage.aspx
  • Default.aspx
  • web.config
  • / Protected
    • MembersOnlyPage.aspx
    • web.config

Если я вас правильно понял, вы можете просто перетащить файл «web.config» в папку «Protected», показанную выше. Этот файл web.config должен выглядеть следующим образом:

<system.web>
<authorization>
 <allow users ="Bob, Jane, Mary" />
</authorization>
</system.web>

Прочитайте элементы <allow> и <deny> из <authorization>, потому что вы также можете использовать атрибут 'role' вместо 'users' - указать группы пользователей, которым необходимо предоставить доступ или запретить доступ.

Затем вам нужно будет изменить корневой файл web.config для «включения» аутентификации форм. Добавить что-то вроде:

<authentication mode="Forms" >
 <forms loginUrl="LoginPage.aspx" name=".ASPNETAUTH" protection="All" path="~/" timeout="20">
</forms>
</authentication>

... к вашему <system.web> элементу.

Теперь все, что вам нужно сделать, это подключить свой LoginPage.aspx для входа в систему пользователя. Для этого вы можете использовать стандартный элемент управления ASP.NET Login, и если вы хотите использовать свою собственную базу данных для аутентификации / авторизации , вы можете перехватывать события элемента управления для входа, чтобы делать все, что вам нужно.

Для самого быстрого, самого простого решения, посмотрите следующее видео:

http://www.asp.net/learn/videos/video-45.aspx

Надеюсь, это поможет

/ Richard

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...