【发布时间】:2014-11-16 06:03:37
【问题描述】:
大家好
我有一个使用 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。
到目前为止一切都很好。用户很高兴创建帐户,他们可以随时登录/注销/管理。现在面临的问题是 Authorize(Role="rolename")。它只是不起作用。
[Authorize(Users="pedro")]
[Authorize]
这两件作品
[Authorize(Roles="Admin")]
这是一个。
在我的数据库中,我有属于角色管理员的用户。我不确定为什么这不起作用。mybe 因为我将所有身份验证内容移到另一层,所以 IPrincipal.IsInRole(string role) 不能弄清楚如何检查这个了。
我正在创建一个自定义 Authorize 属性或创建一些扩展。但我决定先征求你的意见。
感谢您的宝贵时间
【问题讨论】:
标签: asp.net-mvc asp.net-identity owin onion-architecture