在我的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控制器调用。
该System.Web.Http.AuthorizeAttribute
对的WebAPI是不同类型比System.Web.Mvc.AuthorizeAttribute
为MVC。
它不适用于WebApi的原因是因为WebApi不了解MVC类型。您需要为此创建一个继承的类型System.Web.Http.AuthorizeAttribute
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句