![](/img/trans.png)
[英]How to take Unicode characters as UserName in ASP.NET Core Mvc?
[英]How to read API secured with username and password in ASP.NET Core MVC
我有一個使用用戶名和密碼保護的 API。 我正在使用 ASP.NET Core MVC,但我正在使用 JavaScript 閱讀 API。 現在我的組織使用用戶名和密碼保護了這個 API,我想知道如何使用 C# 使用這些用戶名和密碼讀取 API,因為它比 JavaScript 更安全。 我可以在控制器的 Post 請求中添加哪些代碼。 如果你能指導我實現這一目標。
我找到了這種方式,但它在 ASP.NET Core 中不受支持:
WebRequest req = WebRequest.Create(@"https://sub.domain.com/api/operations?param=value¶m2=value");
req.Method = "GET";
req.Headers["Authorization"] = "Basic " +
Convert.ToBase64String(Encoding.Default.GetBytes("username:password"));
//req.Credentials = new NetworkCredential("username", "password");
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
對於 net core 最好使用 http 客戶端
using (var client = new HttpClient())
{
var baseAddress = "https://sub.domain.com";
var api = "/api/operations?param=value¶m2=value";
client.BaseAddress = new Uri(baseAddress);
var contentType = new MediaTypeWithQualityHeaderValue("application/json");
client.DefaultRequestHeaders.Accept.Add(contentType);
var authenticationString = $"{username}:{password}";
var base64EncodedAuthenticationString = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(authenticationString));
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", base64EncodedAuthenticationString);
var response = await client.GetAsync(api);
var statusCode = response.StatusCode.ToString();
if (response.IsSuccessStatusCode)
{
var stringData = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<object>(stringData);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.