C# Web api授权筛选器未启动
我正在学习教程。并在自定义授权属性中添加了此代码。但此筛选器不起作用,未启动,断点未命中。当我在某些操作上使用它时,会调用操作,但不会调用此属性C# Web api授权筛选器未启动,c#,asp.net-web-api,C#,Asp.net Web Api,我正在学习教程。并在自定义授权属性中添加了此代码。但此筛选器不起作用,未启动,断点未命中。当我在某些操作上使用它时,会调用操作,但不会调用此属性 public class RESTAuthorizeAttribute : AuthorizeAttribute { private const string _securityToken = "token"; public override void OnAuthorization(AuthorizationContext filt
public class RESTAuthorizeAttribute : AuthorizeAttribute
{
private const string _securityToken = "token";
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (Authorize(filterContext))
{
return;
}
HandleUnauthorizedRequest(filterContext);
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
base.HandleUnauthorizedRequest(filterContext);
}
private bool Authorize(AuthorizationContext actionContext)
{
try
{
HttpRequestBase request = actionContext.RequestContext.HttpContext.Request;
string token = request.Params[_securityToken];
return SecurityManager.IsTokenValid(token, CommonManager.GetIP(request), request.UserAgent);
}
catch (Exception)
{
return false;
}
}
}
采取行动:
[RESTAuthorize] //this donot get fired,bpoint not hit
public IEnumerable<string> Get()//this fires and bpoint hit
{
return new string[] { "value1", "value2" };
}
[RESTAuthorize]//这不会被解雇,B点不会被击中
public IEnumerable Get()//此命令激发并点击
{
返回新字符串[]{“value1”,“value2”};
}
您应该添加用于将属性添加到控制器/操作的代码(以防万一)。尝试全局添加它-config.Filters.add(new RESTAuthorizeAttribute())
在WebApiConfig.cs
中,看起来其他人也有类似的问题,也许这个线程会有所帮助:asp.net站点上还有一些很好的授权和身份验证资源。我想说的是,通过在一个属性中同时执行这两个操作,您可以将它们混合在一起,但以下是链接:&@AjayAradhya是的,它工作了,但现在该属性正在调用每个控制器操作,无论我是否用属性装饰它,都可以通过其他方式解决它。您应该添加用于将属性添加到控制器/操作的代码(以防万一)。尝试全局添加它-config.Filters.Add(new RESTAuthorizeAttribute())
在WebApiConfig.cs
中,看起来其他人也有类似的问题,也许这个线程会有所帮助:asp.net网站上也有一些很好的授权和身份验证资源。我想说,你是通过在一个属性中同时使用这两个属性来混合它们,但下面是链接:&@AjayAradhya是的,但它确实有效现在,该属性正在调用每个控制器操作,无论我是否用属性装饰它,都可以通过其他方式解决它。