自定义AuthorizeAttribute

Wel*_*ton 3 c# asp.net-mvc

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

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

[CheckArticleExistence(Id=articleId)]
public ActionResult Tags(int articleId)
{
...
}
Run Code Online (Sandbox Code Playgroud)

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

有什么办法吗?谢谢.

Wel*_*ton 5

这个工作(谢谢!):

[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))
        {
            ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)