【发布时间】:2014-09-12 11:20:25
【问题描述】:
我有一个项目,其中包含 MVC 和 Web API 控制器。它使用 Windows 身份验证。但是,我想使用自定义属性保护特定的 Web API 操作。我创建了以下内容只是为了设置基本流程(最终它将检查用户的 IP 地址):
using System.Web;
using System.Web.Http;
using System.Web.Http.Filters;
namespace UoB.People.UserInterface.Mvc.Filters
{
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class IPAuthorize : AuthorizationFilterAttribute
{
protected bool AuthorizeCore(HttpContextBase httpContext)
{
return true;
}
}
}
我已通过调用此属性来修饰我的 Web API 操作。问题是,当我在本地运行我的代码时,属性代码永远不会被命中。动作是。此特定操作属于不使用 Windows Auth 的控制器。
为什么我的属性没有被调用?它需要在某个地方注册吗?是否因为我的项目同时包含 MVC 和 Web API 控制器而发生冲突?我是否在某个地方犯了一个简单的错误?
谢谢。
【问题讨论】:
标签: asp.net-mvc asp.net-web-api authorize-attribute