У меня есть этот метод в проекте ASP.NET MVC, который работает локально, но когда я пытаюсь опубликовать его в Azure, я не могу получить доступ к API, у меня нет результатов при попытке выполнить запросы (
public async Task OnPostAsync(string returnUrl = null)
{
returnUrl ??= Url.Content("~/");
ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
var client = _httpClientFactory.CreateClient();
using (var requestMessage = new HttpRequestMessage(HttpMethod.Post, "https://api.libreview.io/llu/auth/login"))
{
requestMessage.Headers.Add("version", "4.7");
requestMessage.Headers.Add("product", "llu.android");
requestMessage.Headers.Add("User-Agent", "LiveDiabetes/1.0.0");
requestMessage.Headers.Add("Accept", "*/*");
requestMessage.Headers.Add("Accept-Enconding", "gzip,deflate,br");
requestMessage.Headers.Add("Connection", "keep-alive");
requestMessage.Content = JsonContent.Create(new { email = Input.Email, password = Input.Password });
var response = await client.SendAsync(requestMessage);
var content = await response.Content.ReadAsStringAsync();
JObject loginjson = JsonConvert.DeserializeObject(content);
if (loginjson["data"]?["authTicket"]?["token"] == null)
{
var localLogin = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false);
if (localLogin.Succeeded)
{
_logger.LogInformation("User logged in locally.");
return LocalRedirect(returnUrl);
}
else
{
ModelState.AddModelError(string.Empty, "Login failed. The user does not exist or password is incorrect.");
}
}
HttpContext.Session.SetString("token", loginjson["data"]["authTicket"]["token"].ToString());
}
using (var requestMessage = new HttpRequestMessage(HttpMethod.Get, "https://api.libreview.io/llu/connections"))
{
requestMessage.Headers.Add("Authorization", "Bearer " + HttpContext.Session.GetString("token"));
requestMessage.Headers.Add("version", "4.7");
requestMessage.Headers.Add("product", "llu.android");
requestMessage.Headers.Add("User-Agent", "LiveDiabetes/1.0.0");
requestMessage.Headers.Add("Accept", "*/*");
requestMessage.Headers.Add("Accept-Enconding", "gzip,deflate,br");
requestMessage.Headers.Add("Connection", "keep-alive");
var response = await client.SendAsync(requestMessage);
var content = await response.Content.ReadAsStringAsync();
JObject connectionjson = JsonConvert.DeserializeObject(content);
HttpContext.Session.SetString("patientid", connectionjson["data"][0]["patientId"].ToString());
}
_logger.LogInformation("User logged in.");
return LocalRedirect(returnUrl);
}
else
{
ModelState.AddModelError(string.Empty, "Este utilizador não existe.");
return Page();
}
}
return Page();
}
Поскольку у меня нет проблем при работе локально, что я делаю не так?
Проблема не в том if, который регистрируется в клиенте, когда я не получаю результатов от API, потому что я могу войти в систему, используя свой сервер базы данных.
У меня есть этот метод в проекте ASP.NET MVC, который работает локально, но когда я пытаюсь опубликовать его в Azure, я не могу получить доступ к API, у меня нет результатов при попытке выполнить запросы ([code]Post[/code] & Get). У кого-нибудь еще была такая проблема? [code]public async Task OnPostAsync(string returnUrl = null) { returnUrl ??= Url.Content("~/");
if (ModelState.IsValid) { var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false);
if (result.Succeeded) { var client = _httpClientFactory.CreateClient();
using (var requestMessage = new HttpRequestMessage(HttpMethod.Post, "https://api.libreview.io/llu/auth/login")) { requestMessage.Headers.Add("version", "4.7"); requestMessage.Headers.Add("product", "llu.android"); requestMessage.Headers.Add("User-Agent", "LiveDiabetes/1.0.0"); requestMessage.Headers.Add("Accept", "*/*"); requestMessage.Headers.Add("Accept-Enconding", "gzip,deflate,br"); requestMessage.Headers.Add("Connection", "keep-alive");
if (loginjson["data"]?["authTicket"]?["token"] == null) { var localLogin = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false);
if (localLogin.Succeeded) { _logger.LogInformation("User logged in locally."); return LocalRedirect(returnUrl); } else { ModelState.AddModelError(string.Empty, "Login failed. The user does not exist or password is incorrect."); } }
return Page(); } [/code] Поскольку у меня нет проблем при работе локально, что я делаю не так? Проблема не в том if, который регистрируется в клиенте, когда я не получаю результатов от API, потому что я могу войти в систему, используя свой сервер базы данных.