Web API 中的身份验证

本文关键字:身份验证 API Web | 更新日期: 2023-09-27 17:56:12

我知道这是很常见的问题。但我真的不知道如何整合它。我想向我的 Web API 服务添加身份验证。现在,我已经创建了一个控制台应用程序来调用服务的方法。

我已经浏览了这个博客。我只想实现本文中提到的身份验证过滤器。

我想知道如何从我的控制台应用程序传递凭据和 HTTPClient 一起,将这些内容提取到 Web API 并对其进行身份验证。

我已经创建了身份验证过滤器,但它没有调用身份验证过滤器的身份验证异步方法。

为了传递http客户端,我已经这样做了:

 public void GetData()
    {
        HttpClient cons = new HttpClient();
        cons.BaseAddress = new Uri("http://localhost:50524/");
        cons.DefaultRequestHeaders.Accept.Clear();
        cons.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        var data = Encoding.ASCII.GetBytes("Ankita:ankita123");
        var header = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(data));
        cons.DefaultRequestHeaders.Authorization = header;
        //MyAPIPost(cons).Wait();
        MyAPIGet(cons).Wait();
    }

Web API 中的身份验证

教你如何在 Web API 中实现身份验证将花费大量时间。您最好坚持使用在线教程。

您阅读的博客涉及 ASP.NET 的不同身份验证。由于您已将问题标记为 Web API 2 ASP.NET,因此我建议使用 OWIN 中间件的基于令牌的身份验证。看看这个。本指南使用控制台应用程序来检查对 Web API 的请求。

它的要点是...

客户端>令牌提供程序(为有效用户生成令牌)> Web API>检查令牌是否有效(现有且未过期)>进行身份验证!

考虑到您正在尝试使用 HttpClient 访问 API,您可以在创建 API 时向其传递 HttpClientHandler 的实例,这允许您设置在它执行请求时将使用的凭据:

new HttpClient(new HttpClientHandler { Credentials = new NetworkCredential(userName, password) })

希望对您有所帮助!

我已经使用本文成功实现了身份验证。在该筛选器中实现属性。