自定义授权属性无效 asp.net
Custom Authorize Attribute not working asp.net
在我的 C# 应用程序中,我正在添加这样的自定义属性
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 控制器它不能。
MVC 的 System.Web.Http.AuthorizeAttribute
for WebApi is a different type than the System.Web.Mvc.AuthorizeAttribute
。
它不能与 WebApi 一起工作的原因是因为 WebApi 不知道 MVC 类型。为此,您需要创建一个继承 System.Web.Http.AuthorizeAttribute
的类型。
在我的 C# 应用程序中,我正在添加这样的自定义属性
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 控制器它不能。
MVC 的 System.Web.Http.AuthorizeAttribute
for WebApi is a different type than the System.Web.Mvc.AuthorizeAttribute
。
它不能与 WebApi 一起工作的原因是因为 WebApi 不知道 MVC 类型。为此,您需要创建一个继承 System.Web.Http.AuthorizeAttribute
的类型。