Как использовать Single Sign On в веб-приложении

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

Спасибо

1 ответ

Решение

К счастью, 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

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

/Ричард

Другие вопросы по тегам