Как реализовать ролевую защиту с аутентификацией на основе форм для приложений ASP.NET с помощью Microsoft Visual Basic .NET

Переводы статьи Переводы статьи
Код статьи: 306238 - Vizualiza?i produsele pentru care se aplic? acest articol.
Данная статья была ранее опубликована под номером RU306238
Развернуть все | Свернуть все

В этой статье

Аннотация

В данной статье описывается способ реализации ролевой защиты с помощью Visual Basic .NET в приложениях ASP.NET, которые используют аутентификацию на основе форм.

Требования

В данной статье подразумевается, что в системе уже реализованна аутентификация на основе форм на приложениях ASP.NET. За дополнительной информацией обратитесь к следующей статье Microsoft Knowledge Base:
308157 HOW TO: Implement Forms-Based Authentication in Your ASP.NET Application by Using Visual Basic .NET

Назначение роли аутентифицруемому пользователю

При аутенфикации на основе форм обычно используются учетные записи, отличные от учетных записей в Microsoft Windows, поэтому они не имеют ролей, сопоставленных с ними по умолчанию. Таким образом необходимо сопоставить правило аутентификации пользователя с даными пользователей, таким образом реализовав безопасность на основе ролей внутри кода.

Используйте пример кода, приведенный в этом разделе для реализации безопасности на основе ролей в Вашем приложении. Данный пример кода назначает предопределенную роль аутентификации пользователю. В зависимости от того, как сохраняется информация о пользователе, Вы можете применить Ваши личные методы для восстановления ролей аутентифицированных пользователей и использовать эти роли для определения пользователей, как показано в следующем примере кода.

Скопируйте следующий фрагмент кода в файл Global.asax в существующем приложении, чтобы присоеденить роли пользователей в обработчик событий ''Application_AuthenticateRequest'':
Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
if (not(HttpContext.Current.User is Nothing)) then
    if HttpContext.Current.User.Identity.AuthenticationType = "Forms" then
        Dim id as System.Web.Security.FormsIdentity
        id = HttpContext.Current.User.Identity

        Dim MyRoles(2) As String
        MyRoles(0) = "Manager"
        MyRoles(1) = "Admin"
        HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,MyRoles)
    End if
End if
       End sub

Проверка роли пользователя и выполнения программной логики в ASPX страницах

Следующие действия демонстрируют, как реализовать и контролировать программную логику, основанную на ролях, которые принадлежат аутентифицированным пользователям.
  1. Создайте новую страницу .aspx с именем ''Sample.aspx'' и вставьте в нее следующий код:
    <%@ Page Language="VB" %>
    <%@ Import Namespace="System.Web" %>
    
      <script runat=server>
        Sub Page_Load(Src As Object, E As EventArgs)
    if User.IsInRole("Admin") then
    Response.Write ("You are an Administrator")
    Else
    Response.Write ("You do not have any role assigned")
    End if
        End Sub
    
                 </script>
  2. Сохраните файл Sample.aspx в вашем существующем приложении. Просмотрите эту страницу для проверки.

Ссылки

Для получения информации по безопасности ASP.NET обратитесь к следующей статье Microsoft Knowledge Base:
306590 INFO: ASP.NET Security Overview
За дополнительной информацией по безопасности на основе ролей обратитесь к следующей ссылке в документации для .NET Framework Software Development Kit (SDK):
Role-Based Security
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguidnf/html/cpconrole-basedsecurity.asp
Документация и исходные коды с веб-сервера IBuySpy Developer Solutions также содержат информацию по безопасности на основе ролей:
IBuySpy Developer Solutions
http://www.ibuyspy.com
Для получения информации по безопасности ASP.NET обратитесь к следующей группе новостей MSDN:
microsoft.public.dotnet.framework.aspnet
Для получения дополнительной информации, обратитесь к следующим книгам:
Reilly, Douglas J. Designing Microsoft ASP.NET Applications . Microsoft Press, 2001.

Esposito, Dino. Building Web Solutions with ASP.NET and ADO.NET . Microsoft Press, 2001.
Контактная информация о независимых производителях предоставлена в данной статье с целью помочь пользователям в получении необходимой технической поддержки. Данная информация может быть изменена без предварительного уведомления. Корпорация Microsoft не дает никаких явных или подразумеваемых гарантий относительно корректности приведенной контактной информации о независимых производителях.

Свойства

Код статьи: 306238 - Последний отзыв: 29 октября 2007 г. - Revision: 3.3
Информация в данной статье относится к следующим продуктам.
  • Microsoft ASP.NET (included with the .NET Framework)
  • Microsoft Visual Basic .NET 2002 Standard Edition
Ключевые слова: 
kbproductlink kbgrpdsasp kbhowto kbhowtomaster kbsecurity KB306238

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com