Ограничение на доступ анонимным пользователям при помощи view


29.02.2012 || Раздел: || Контент KooBoo


Иногда может возникать необходимость ограничивать доступ к некоторому участку Вашего сайта, например, форме добавления или редактирования статей, или при предоставлении доступа к части контента только определенной группе пользователей. Я говорю именно о "front end" (видимой для пользователей) части Вашего сайта, а не об административном интерфейсе (т.к. для настройки административной части существуют более удобные инструменты).

Одним из решений может быть - написание представления (kooboo view) с включением следующего кода:

@{
    if (!User.Identity.IsAuthenticated)
    {
        var ResponseUrl = String.Format("/Account/LogOn?ReturnUrl={0}",
            Server.UrlEncode(Request.AppRelativeCurrentExecutionFilePath));
        Response.Redirect(ResponseUrl);
    }
}

Приведенный выше код перенаправляет пользователя на страницу ввода логина-пароля в случае, если он не авторизован (т.е. разрешается дальнейший просмотр страницы только зарегистрированным и авторизованным пользователям).

Если нужно выделить некоторую группу пользователей (роль), то вместо - User.Identity.IsAuthenticated - можно указать следующий код: User.IsInRole("RoleName") (RoleName - название роли, которой предоставляется доступ).

Если доступ только для администратора, то строку условия меняем на:

if (!ServiceFactory.UserManager.IsAdministrator(User.Identity.Name))

Итак, последовательность действий может быть следующая:

  1. создайте view (Site manager - Development - View - Create view) с указанным выше кодом.
  2. вставьте этот view на страницу, доступ к контенту которой нужно ограничить (Site manager - Pages)

Автор статьи: ©Элла (Автор:Ella Sea)

Часть материала основана на статье: http://sbrickey.com/Tech/Code/Kooboo_View_-_Security_Deny_Anonymous

< Предыдущая статья

Настройка KooBoo для использования базы данных MSSQL или MongoDB

Следующая статья >

Хранение учетных записей пользователей системы KooBoo в базе данных SQL Server