Webapi AuthorizeAttribute在状态消息显示为200时不允许我访问methode

时间:2019-02-06 06:27:01

标签: c# asp.net-mvc authentication asp.net-web-api

在这里我写的是小型身份验证

public override void OnAuthorization
  (System.Web.Http.Controllers.HttpActionContext actionContext)
{
    var  authenticationTokenPersistant = "abc";
    base.OnAuthorization(actionContext);
    if (actionContext.Request.Headers.GetValues("Authorization") != null)
    {
      string authenticationToken = Convert.ToString(
           actionContext.Request.Headers
             .GetValues("Authorization").FirstOrDefault());
      authenticationTokenPersistant = authenticationToken;
      if (authenticationTokenPersistant == authenticationToken)
      {
        HttpContext.Current.Response.AddHeader("Authorization", authenticationToken);
        HttpContext.Current.Response.AddHeader("AuthenticationStatus", "NotAuthorized");
        actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK);
        return;
      }
      HttpContext.Current.Response.AddHeader("Authorization", authenticationToken);
      HttpContext.Current.Response.AddHeader("AuthenticationStatus", "Authorized");
      return;
    }
    actionContext.Response = actionContext.Request
                             .CreateResponse(HttpStatusCode.ExpectationFailed);
    actionContext.Response.ReasonPhrase = "Please provide valid inputs";
}

此函数我装饰了CustomAuthorize,它执行我的函数,但允许我在ValidateSession()中输入

[CustomAuthorize]
public IHttpActionResult ValidateSesion()
{
    return ok("Success..");
} 

当我得到200条响应时,即使我进入屋内

0 个答案:

没有答案