2015-05-20 3 views
1

Каков наилучший способ настройки прав страницы на основе имени пользователя? Вот мое затруднительное положение:
Мне нужна настройка безопасности пользователя и вы хотите сделать это с самого начала (почему я спрашиваю).Настройка прав пользователя

Я есть пользователи, которые (и эти имена могут быть изменены) в одной из этих групп:

  • fulladmin
  • privelageduser
  • сотрудник
  • температура
  • контракта

и будет предоставлять доступ к определенным страницам bas из какой группы входит имя пользователя.
Тем не менее, у меня будет несколько одноразовых приложений, в которых члену privelageduser понадобится доступ к одной из страниц fulladmin, но только 1 страница, а не полные страницы, которые получает fulladmin.
Так, например, допустим, у полного администратора есть права на страницы 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 и privelageduser имеет права на страницы 1, 2, 3, 4, 5, 6 НО это одно конкретное имя пользователя, который находится в группе privelageduser необходим доступ к страницам 1, 2, 3, 4, 5, 6, 11.

и благодаря 1-офф я не могу просто предоставить флаг «securitylevel» из «FA», «PU», «EM», «TE», «CO».

+1

Вы используете mvc? –

+0

Также как нам сообщить, является ли это MVC или WebForms; также, какую личность или членский провайдер вы используете? – Richard

+0

IMO нет «лучшего способа» решить такие проблемы, но есть много «хороших способов» -> что вы думали до сих пор? Что бы вы предпочли, как это могло бы работать? – ChrFin

ответ

0

У ASP.Net есть Membership Provider Doc вы можете использовать.

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

1

Если вы используете MVC, вы можете попробовать использовать Authorize attribute. Это позволяет разрешать по имени пользователя и/или роли:

[Authorize(Users = "Tom, Chris")] 
public ActionResult SpecificUserOnly() 
{ 
    return View(); 
} 


[Authorize(Roles = "Admin, SuperAdmin")] 
public ActionResult AdministratorsOnly() 
{ 
    return View(); 
} 

Вы можете даже create a customized authorize attribute если у вас есть очень специфические потребности.

+0

будет ли это работать для веб-форм? – MasterOfStupidQuestions

+0

Будет [OAuth] (http://blogs.msdn.com/b/webdev/archive/2012/08/15/oauth-openid-support-for-webforms-mvc-and-webpages.aspx) работать на [Web Формы] (http://sanderstechnology.com/2014/a-lightweight-implementation-owin-oauth-for-asp-net-web-forms-using-visual-studio-2013-part-1/12875/), да , – lloyd

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