Недавно я занимался разработкой MVC 3, но с тех пор у меня есть опыт работы как на С#, так и на ASP.NET. Поэтому я начну с того, что я пытаюсь выполнить. Я разработал небольшой сайт для размещения статей. Я внедрил управление сайтом на основе SQLServer на сайт. Теперь я хочу создать систему учетных данных, которая ограничивает и позволяет правильным пользователям создавать, удалять и обновлять статьи. Для этого есть одно простое решение: сделать это следующим образом:
[Authorize(Roles="Admin")]
public ActionResult UpdateArticle(ArticleModel model, int articleid)
{
return View();
}
Теперь это действительно просто. Я просто говорю, что только членам, находящимся в роли "Admin", разрешено обновлять статью. Но это только статично. Поэтому я создал таблицу учетных данных в моей базе данных, которая в конце говорит мне, что "Статья 5 может быть отредактирована ролями 1,2,3 и 4 и пользователями A, b и C". Все идет нормально. Но как я могу реализовать это с помощью разрешения Authorize?
Я хотел бы сделать что-то вроде этого:
[Authorize(getAuthorizedusers("update",this.articleid))]
где getAuthorizedusers возвращает, какие пользователи и роли имеют право обновлять статью с переданной ей статьей.
Итак, у меня есть (по крайней мере) две проблемы: -Удаление метода авторизации для приема нескольких пользователей и ролей. -Пассирование поставляемого изделия, которое было отправлено методу UpdateArticle, методу getAuthorizedusers.