всем привет
У меня есть проект, в котором я использую ASP.NET Identity 2.0. В этом проекте я следую архитектуре Луковицы. слои:
1.UI: нет ссылки на Owin или ASP.Net Identity
2.AuthenticationService: содержит оболочку для usermanager идентификации asp.net. Эта оболочка реализует интерфейс, который живет на уровне Bal. Этот уровень также содержит мой пользовательский UserStore.
3.Dal: Здесь живет DbContext.
4. Баланс: содержать сущности и интерфейсы домена. Нет ссылок на Owin, удостоверение ASP.NET или что-либо еще.
5.DependencyResolver: здесь запускается Owin, а также несколько модулей Ninject и NinjectWebCommon. Итак, я использую Ninject.
до сих пор все в порядке. пользователи с удовольствием создают учетные записи, и они могут входить / выходить из системы / управлять в любое время, когда захотят. Проблема, с которой я сейчас сталкиваюсь, связана с авторизацией (Role = "rolename"). Это просто не работает.
[Authorize(Users="pedro")]
[Authorize]
обе эти работы
[Authorize(Roles="Admin")]
это один нет.
в моей базе данных у меня есть пользователи, которые принадлежат к роли администратора. Я не уверен, почему это не работает. mybe, потому что я переместил все элементы аутентификации на другой уровень, поэтому IPrincipal.IsInRole (строковая роль) не может понять, как чтобы проверить это больше.
Я работаю над созданием настраиваемого атрибута авторизации или над созданием некоторых расширений. но я решил сначала посоветоваться с вами.
Спасибо за уделенное время