大家好
我有一个使用 ASP.NET Identity 2.0 的项目。在这个项目中,我遵循洋葱架构。这些层是:
1.UI:没有引用 Owin 或 ASP.Net Identity
2.AuthenticationService:包含asp.net身份usermanager的包装器。这个包装器实现了一个位于Bal层的接口。这个层还包含我的自定义UserStore。
3.Dal:DbContext 就在这里。
4.Bal:包含 Domaine 实体和接口。不引用 Owin 或 ASP.NET 标识或其他任何内容。
5.DependencyResolver:Owin Startup 在这里加上一些 Ninject 模块和 NinjectWebCommon。所以我正在使用 Ninject。
直到现在一切都很好。用户很高兴创建帐户,并且他们可以随时登录/注销/管理。现在面临的问题是授权(Role="rolename")。它只是不起作用。
[Authorize(Users="pedro")]
[Authorize]
这两个作品
[Authorize(Roles="Admin")]
这是一个没有。
在我的数据库中,我有属于角色管理员的用户。我不确定为什么这不起作用。mybe 因为我将所有身份验证内容移到另一层,所以 IPrincipal.IsInRole(string role) 无法弄清楚如何再检查一下。
正在创建自定义 Authorize 属性或创建一些扩展。但我决定先征求你的意见。
感谢您的时间