Csharp/C#教程:自定义AuthorizeAttribute分享


自定义AuthorizeAttribute

我有一个名为CheckArticleExistence的AuthorizeAttribute子类。

我想使用我在动作中收到的参数设置一个属性。 像这样:

[CheckArticleExistence(Id=articleId)] public ActionResult Tags(int articleId) { ... } 

我想使用articleId来检查数据库中是否存在该文章,如果不存在,我可以使用OnAuthorization方法触发不同的内容。

有什么办法吗? 谢谢。

我认为您可以从AuthorizationContext获取articleId ,因此您不需要将其作为属性的属性传递。

你可以这样做:

 [CheckArticleExistence] public ActionResult Tags(int articleId) { ... } 

这个工作了(谢谢!):

 [CheckArticleExistence] public ActionResult Tags(int articleId) { ... } ... public class CheckArticleExistenceAttribute : AuthorizeAttribute { private int articleId; public override void OnAuthorization(AuthorizationContext filterContext) { this.articleId = int.Parse(filterContext.RouteData.Values["id"].ToString()); if (!Article.Exists(articleId)) { ... } } } 

您可以在存储库中放置一个方法来检查文章是否存在。

 public ActionResult Tags(int articleId) { if (repository.ArticleExists(articleID)) { // Do your thing } else { return view("NotFound"); // or do something else } } 

或者您可以简单地尝试检索文章,并检查空对象。

上述就是C#学习教程:自定义AuthorizeAttribute分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 public ActionResult Tags(int articleId) { var article = repository.GetArticle(); if (article !=null) { // Do your thing } else { return view("NotFound"); // or do something else } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1020619.html

(0)
上一篇 2022年1月4日
下一篇 2022年1月4日

精彩推荐