Web 中的身份验证 API
Authentication in Web API
我知道这是一个很常见的问题。但我真的不知道如何整合它。
我想为我的网络 api 服务添加身份验证。现在我已经创建了一个控制台应用程序来调用服务的方法。
我经历过这个blog。我只想实现本文中提到的身份验证过滤器。
我想知道如何从我的控制台应用程序将凭据与 HTTPClient 一起传递,将这些内容获取到 Web API 并对其进行身份验证。
我已经创建了身份验证过滤器,但它没有调用身份验证过滤器的 AuthenticateAsync 方法。
为了通过 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 将花费大量时间。你最好坚持在线教程。
您阅读的博客解决了 ASP.NET 的不同身份验证问题。由于您已将问题标记为 ASP.NET Web API 2,我建议使用 OWIN 中间件进行基于令牌的身份验证。检查 this。该指南使用控制台应用程序检查对网络的请求 API。
它的要点是...
客户端 > 令牌提供者(为有效用户生成令牌)> Web API > 检查令牌是否有效(存在且未过期)> 验证!
考虑到您正在尝试使用 HttpClient 访问 API,您可以在创建它时将 HttpClientHandler 实例传递给它,这样您就可以设置执行请求时将使用的凭据:
new HttpClient(new HttpClientHandler { Credentials = new NetworkCredential(userName, password) })
希望对您有所帮助!
我已经使用 this 文章成功实现了身份验证。在该过滤器属性中实现。
我知道这是一个很常见的问题。但我真的不知道如何整合它。 我想为我的网络 api 服务添加身份验证。现在我已经创建了一个控制台应用程序来调用服务的方法。
我经历过这个blog。我只想实现本文中提到的身份验证过滤器。
我想知道如何从我的控制台应用程序将凭据与 HTTPClient 一起传递,将这些内容获取到 Web API 并对其进行身份验证。
我已经创建了身份验证过滤器,但它没有调用身份验证过滤器的 AuthenticateAsync 方法。
为了通过 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 将花费大量时间。你最好坚持在线教程。
您阅读的博客解决了 ASP.NET 的不同身份验证问题。由于您已将问题标记为 ASP.NET Web API 2,我建议使用 OWIN 中间件进行基于令牌的身份验证。检查 this。该指南使用控制台应用程序检查对网络的请求 API。
它的要点是...
客户端 > 令牌提供者(为有效用户生成令牌)> Web API > 检查令牌是否有效(存在且未过期)> 验证!
考虑到您正在尝试使用 HttpClient 访问 API,您可以在创建它时将 HttpClientHandler 实例传递给它,这样您就可以设置执行请求时将使用的凭据:
new HttpClient(new HttpClientHandler { Credentials = new NetworkCredential(userName, password) })
希望对您有所帮助!
我已经使用 this 文章成功实现了身份验证。在该过滤器属性中实现。