2016-01-09 6 views
-2

Я не могу найти хорошие примеры авторизации на основе пользователя и активности для моего веб-сайта ASP.NET. В настоящее время я использую роли пользователей в веб-конфигурации, чтобы разрешить/запретить доступ к страницам в папках. Но этот метод оказывается кошмаром для поддержания, особенно когда пользователи придумывают специальные сценарии, которые полностью отклоняются от существующих разрешений на роль.Asp.net dynamic User and activity based authorization mixed with hide show site master html

Так что я ищу способ хранения и получения прав доступа пользователей из базы данных, а затем принудительного применения их на моем веб-сайте динамически.

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

If(isInRole("Admin"){ 
// Show Everything 
} 
else 
{ 
// hide certain html 
} 

Так что этот подход работает в настоящее время, но проблематично поддерживать и не очень гибкие.

И, наконец, я рассматривал действие, основанное на авторизации, плюсы и минусы которого были хорошо описаны в этой статье: http://ryankirkman.com/2013/01/31/activity-based-authorization.html. Так как я могу реализовать это на своем веб-сайте ASP.NET?

В заключение есть три вещи, которые я после:

  1. Динамически управления видимостью HTML элементов в моей главной странице сайта на основе авторизации пользователя.
  2. Динамически контроль авторизации пользователя на мои ASPX страницы
  3. Динамически пользователь контроля активности авторизации на основе

Любой вход на это будет высоко оценен. Спасибо

+3

Вы можете использовать Претензии: оно разобрано с двумя проблемами, которые у вас есть. 1. Вы можете заблокировать контроллеры на основе требований безопасности на стороне сервера 2. Вы можете положиться на механизм asp.net, чтобы загрузить его для вас. 3. Вы все равно можете делать, если блоки в HTML или главной странице. Ни в коем случае, просто используйте синтаксис Claims. – tarkil

ответ

1

Вы должны переключиться с проверки подлинности на основе ролей на основе требований аутентификации. Вот статья, описывающая основы претензий на основе аутентификации:

http://dotnetcodr.com/2013/02/11/introduction-to-claims-based-security-in-net4-5-with-c-part-1/

Иска даст вам мелкозернистый контроль над правами для каждого отдельного пользователя. ClaimsPrincipal также может быть использован в WebForms:

https://visualstudiomagazine.com/articles/2013/09/01/going-beyond-usernames-and-roles.aspx

атрибут может быть применен к страницам и методов в ASP.NET Web Forms (описано в статье выше):

[ClaimsPrincipalPermission(SecurityAction.Demand, 
    Operation="Update", Resource="Customer")] 
public partial class CustomerUpdate : System.Web.UI.Page 
{ 
1

Проверить ссылку Authorization Based on User

Или Другое дело, что вы можете сделать это, разделение концерна по ролям

Держите просмотров в соответствии с уровнем доступа и ролей, так что вы можете легко управлять доступ.

Другое дело, что я видел, что люди делают, имея таблицу БД со всеми ролями/пользователей и доступа Ссылки

 Смежные вопросы

  • Нет связанных вопросов^_^