我正在使用 Thinktecture Identity Server V3 (Oauth) 进行自定义用户存储的身份验证,并且我想使用基于角色的授权。
我正在尝试使用自定义角色提供程序来检查角色。IsInRole 方法的用户名属性为空。如何将用户数据添加到当前上下文?
在这种情况下使用 RoleProvider 或将角色添加为声明是个好主意吗?如果我将它们添加到声明中,我该如何使用 [Authorize] 属性?我需要编写自定义 Authorize 属性吗?
我正在使用 Thinktecture Identity Server V3 (Oauth) 进行自定义用户存储的身份验证,并且我想使用基于角色的授权。
我正在尝试使用自定义角色提供程序来检查角色。IsInRole 方法的用户名属性为空。如何将用户数据添加到当前上下文?
在这种情况下使用 RoleProvider 或将角色添加为声明是个好主意吗?如果我将它们添加到声明中,我该如何使用 [Authorize] 属性?我需要编写自定义 Authorize 属性吗?
AuthorizeAttribute 确实适用于基于角色声明的授权,但听起来您的声明没有正确存储。
如果是这种情况,请参阅此Form Post 客户端(AccountController) 或此OWIN/Katana 客户端(启动类)以获得很好的示例。
此外,应将角色视为声明并将其处理。
如果您有兴趣,Thinktecture 也有自己的授权管理器包。有关更多详细信息,请参阅Dominick Baier 的博客文章。