【问题标题】:Authenticate WEB API request with action params使用操作参数验证 WEB API 请求
【发布时间】:2015-08-24 09:16:33
【问题描述】:

我对如何进行 MVC WEB API 自动化感兴趣。我检查了 basic authentication ,但我有不同的情况。在我的情况下,登录参数应作为操作参数,而不是在标题内。

namespace Test.Controllers
{
    public class TestController : Controller
    {
       [RequireHttps]
       [Authorize]
        public void TestRequest(int actionParam, string username, string token, int appID)
        {
              something.......
        }
    }
}

我也找到了这个解释 http://www.codeproject.com/Tips/867071/WebAPI-Security-Custom-Authorization-Filters 但想知道是否可以从 Authorize 访问操作参数而不是标头值?

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-web-api


    【解决方案1】:

    只需从HttpActionContextHttpContext.Current.Request 覆盖OnAuthorization 中的查询字符串参数:

    见:How to get Request Querystring values?

    public override void OnAuthorization(HttpActionContext actionContext)
    {
        var queryString = HttpUtility.ParseQueryString(actionContext.Request.RequestUri.Query.Substring( 1 ));
        var username = queryString["username"];
    }
    

    或见:Accessing QueryString in a custom AuthorizeAttribute

    然后添加using System.Web;

    public override void OnAuthorization(HttpActionContext actionContext)
    {
        var username = HttpContext.Current.Request.QueryString["username"];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      相关资源
      最近更新 更多