自定义 RoleProvider 是否可以与 ASP.NET MVC 中的操作方法上的 [Authorize] 配合使用?

发布于 2024-08-21 22:26:48 字数 207 浏览 6 评论 0原文

我正在制作自定义 MembershipProvider 和 RoleProvider。

我有包含 Roles 和 UsersInRoles 的数据库表,并且使用 LINQ-to-SQL 创建表的对象。

在操作方法上调用 [Authorize] 时,它可以与我的自定义 RoleProvider 一起使用吗? 它如何知道用户是否已通过身份验证以及用户是否处于适当的角色?

I'm making a custom MembershipProvider and RoleProvider.

I have database tables with Roles and UsersInRoles and I use LINQ-to-SQL to create objects of the tables.

When invoking [Authorize] on an action method, will it work with my custom RoleProvider?
How does it know if the user is authenticated and if the user is in the appropriate role?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

<逆流佳人身旁 2024-08-28 22:26:48

答案是肯定的。 AuthorizeAttribute 在内部使用 User.IsUserInRole() 方法。但您必须将自定义提供程序设置为默认提供程序。

场景

启用角色管理后,RoleManagerModule 会将 HttpContext.User 值替换为 RolePrincipal 的新实例。 RolePrincipal 也在内部使用 Roles.IsUserInRole

The answer is yes. The AuthorizeAttribute uses User.IsUserInRole() method internally. But you have to set your custom provider as default.

Scenario

When the role management is enabled, the RoleManagerModule replaces the HttpContext.User value with a new instance of RolePrincipal. The RolePrincipal uses Roles.IsUserInRole internally as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文