1
我已经实现了基于令牌的认证。 我想编写自定义授权属性。Asp.net中的自定义授权WebApi只为授权属性调用
这背后的原因是,某些时候UserIdentity.GetUserId()给出null。
所以要处理这个问题,我写了自定义授权属性,如下所示。
此自定义授权呼叫所有呼叫(匿名或授权呼叫)。 因此,我使用属性IsAuthorizeCall来检查来电是来自匿名还是授权。
我可以拨打电话吗?只有当我提到上述方法时,才想拨打此自定义authorzie。否则,这不应该被称为。
我该怎么做?
public class CustomAuthorize : AuthorizationFilterAttribute
{
public bool IsAuthorizeCall { get; set; }
public override void OnAuthorization(HttpActionContext actionContext)
{
base.OnAuthorization(actionContext);
if (IsAuthorizeCall)
{
IdentityHelper IdentityHelper = new IdentityHelper();
if (IdentityHelper.UserId== Guid.Empty)
actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized);
}
}
}
参考:
Custom Authorization in Asp.net WebApi - what a mess?
How to Customize ASP.NET Web API AuthorizeAttribute for Unusual Requirements