Custom authorizations in Web.API

后端 未结 2 1862
感动是毒
感动是毒 2020-12-08 01:03

My understanding of ASP.NET MVC is that for authorizations I should use something like -

public class IPAuthorize : AuthorizeAttribute {

protected override         


        
2条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-08 01:46

    The method we use for is an custom ApiAuthorize attribute that inherits from System.Web.Http.AuthorizeAttribute. for example:

    public class ApiAuthorizeAttribute : AuthorizeAttribute
    {
        readonly CreditPointModelContext _ctx = new CreditPointModelContext();
    
        public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)
        {
            if(Authorize(actionContext))
            {
                return;
            }
            HandleUnauthorizedRequest(actionContext);
        }
    
        protected override void HandleUnauthorizedRequest(System.Web.Http.Controllers.HttpActionContext actionContext)
        {
            var challengeMessage = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized);
            challengeMessage.Headers.Add("WWW-Authenticate", "Basic");
            throw new HttpResponseException(challengeMessage);
    
        }
    
        private bool Authorize(System.Web.Http.Controllers.HttpActionContext actionContext)
        {
            try
            {
                //boolean logic to determine if you are authorized.  
                //We check for a valid token in the request header or cookie.
    
    
            }
            catch (Exception)
            {
                return false;
            }
        }
    }
    

提交回复
热议问题