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

Данная статья была ранее опубликована под номером RU306238
Эта статья помещена в архив. Она предлагается "как есть" и обновляться не будет.
За соответствующей информацией по C# .NET обратитесь к статье 311495.

Данная статья ссылается на следующие пространства имен Microsoft .NET Framework Class Library:
  • System.Web.Security
  • System.Security.Principal

Содержание

Аннотация
В данной статье описывается способ реализации ролевой защиты с помощью 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 ifEnd 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") thenResponse.Write ("You are an Administrator")ElseResponse.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):Документация и исходные коды с веб-сервера IBuySpy Developer Solutions также содержат информацию по безопасности на основе ролей:
IBuySpy Developer Solutions
http://www.ibuyspy.com
Для получения информации по безопасности ASP.NET обратитесь к следующей группе новостей MSDN:Для получения дополнительной информации, обратитесь к следующим книгам:
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 — последний просмотр: 12/06/2015 04:56:00 — редакция: 3.3

Microsoft ASP.NET (included with the .NET Framework), Microsoft Visual Basic .NET 2002 Standard Edition

  • kbnosurvey kbarchive kbproductlink kbgrpdsasp kbhowto kbhowtomaster kbsecurity KB306238
Отзывы и предложения