加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 自定义授权属性不工作的asp.net

发布时间:2020-12-15 23:45:43 所属栏目:百科 来源:网络整理
导读:在我的c#app中,我添加了这样的自定义属性 public class CheckLogIn : AuthorizeAttribute{ protected override bool AuthorizeCore(HttpContextBase httpContext) { if (!httpContext.Request.IsAuthenticated) return false; return (Auth.UserLoggedIn ||
在我的c#app中,我添加了这样的自定义属性

public class CheckLogIn : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        if (!httpContext.Request.IsAuthenticated)
            return false;
        return (Auth.UserLoggedIn || Auth.AdminLoggedIn);
    }
}

我这样称呼这个属性

[CheckLogIn]
public dynamic Create(String projectName,String organizationId)
{
    Project pro = Project.Create(organizationId,projectName).Save();

    return new
    {
        organizationId = pro.OrganizationId,name = pro.Name,id = pro.Id
    };
}

AuthorizeCore未被调用.我有一个突破点,但似乎它永远不会被调用.我在这里错过了什么吗?

我试过从它运行的常规控制器调用[CheckLogIn],从api控制器调用它.

解决方法

WebApi的 System.Web.Http.AuthorizeAttribute与MVC的 System.Web.Mvc.AuthorizeAttribute不同.

它不能与WebApi一起使用的原因是因为WebApi不了解MVC类型.您需要创建一个为此目的继承System.Web.Http.AuthorizeAttribute的类型.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读