授权例外

发布于 2024-11-16 10:04:18 字数 217 浏览 5 评论 0 原文

我已经用权限注释标记了我的控制器,但想免除其中一种方法......可以这样做吗?如何?

[Authorize(Roles="Admin")]
public class ProductController : Controller
{
    [DEAUTHORIZE]
    public ActionResult Start(int it)
    { ... }

I've tagged my controller with an authority annotation but would like to exempt one of the methods... can that be done? how?

[Authorize(Roles="Admin")]
public class ProductController : Controller
{
    [DEAUTHORIZE]
    public ActionResult Start(int it)
    { ... }

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

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

发布评论

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

评论(2

心病无药医 2024-11-23 10:04:18

MVC 4 中引入了AllowAnonymousAttribute,它告诉操作调用者跳过AuthorizeAttribute。

[AllowAnonymous]

In MVC 4 was introduced AllowAnonymousAttribute which tells action invoker to skip AuthorizeAttribute.

[AllowAnonymous]
马蹄踏│碎落叶 2024-11-23 10:04:18

不,这是不可能的。实现此目的的标准方法是简单地将 Start 操作移出到单独的控制器中。另一种可能性是构建自定义 IFilterProvider它将有条件地应用授权属性,而不是手动将其烘焙到 ProductController 中。例如 NInject 使用它并提供 根据当前上下文有条件地应用它们

No, this can't be done. The standard way to achieve this is to simply move the Start action out in a separate controller. Another possibility consists into building a custom IFilterProvider which will apply the authorization attribute conditionally instead of baking it manually into the ProductController. For example NInject uses this and provides a pretty fluent syntax into configuring action filters. You can conditionally apply them based on the current context.

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