【问题标题】:How to obtain basic authentication username/password in Controller for .NET Web API 2.0如何在 Controller for .NET Web API 2.0 中获取基本身份验证用户名/密码
【发布时间】:2018-06-18 15:16:18
【问题描述】:

我已经阅读了有关如何为 Web API 2.0 创建基本身份验证过滤器的文档,并且看起来还不错。不过..

我遇到的问题是,我还需要控制器本身中的用户名和密码信息(在 POST/PUT/DELETE 上)才能传递给第 3 方 .NET API 以对操作进行身份验证/授权由控制器采取。

有没有“正确的方法”来做到这一点?

我可以看到 RequestContext(在控制器中)包含有关 Principal 的信息。但这似乎只是名称......所以它没有我需要传递到第 3 方界面的密码。

【问题讨论】:

    标签: asp.net-web-api2 basic-authentication


    【解决方案1】:

    基本身份验证将 username:password 转换为 base64,因此您只需提取 Authorization 标头并解码它的值:

    AuthenticationHeaderValue authenticationHeaderValue = Request.Headers.Authorization;
    var userNamePasswordString = Encoding.UTF8.GetString(Convert.FromBase64String(authenticationHeaderValue.Parameter));
    //username:password
    

    【讨论】:

      猜你喜欢
      • 2013-01-20
      • 2018-07-13
      • 1970-01-01
      • 2017-05-30
      • 2018-03-26
      • 1970-01-01
      • 2013-04-06
      • 2011-06-28
      • 1970-01-01
      相关资源
      最近更新 更多