I work on asp.net razor page Login user name and password . I call Web API validate user
name and password . my issue I face I can't deserialize data response returned after login success
JSON data returned from web API after success login username and password
{
"message": "success",
"status": true,
"data": {
"userID": "9595",
"userName": "ADC Test User",
"userRole": "Administrator",
"environment": "PY"
},
"statusCode": "0000"
}
I call API from razor page login as below :
public async Task OnPost()
{
UserLoginViewModel loginview = new UserLoginViewModel();
loginview.UserID = User.UserName;
loginview.Password = User.vPassword;
var json = JsonSerializer.Serialize(loginview);
var content = new StringContent(json, Encoding.UTF8, "application/json");
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://localhost:44374/api/adcxx/ValidateUser");
request.Content = content;
var response = await _httpClient.SendAsync(request);
if (response.IsSuccessStatusCode)
{
}
}
I need to deserialize returned data from login success where message=success
as logic below :
if (response.IsSuccessStatusCode)
{
IF(message=="success" AND status="true")
{
receive `user id and username and user role and password`
}
}
image below explain what I need to do exactly
How to deserialize data from var response
to get details data as
message,status,userid and username and user role and environment ?
You can try the follwoing code.
[Route("api/[controller]")]
[ApiController]
public class adcxx : ControllerBase
{
private readonly HttpClient _httpClient;
public adcxx(HttpClient httpClient)
{
this._httpClient = httpClient;
}
[HttpGet("ValidateUser")]
public IActionResult ValidateUser()
{
return new JsonResult(new { message = 1, status = true, data = new {userID=9595,userName= "ADC Test User",userRole= "Administrator", environment="PY" },statusCode=0000 });
}
[HttpGet("test")]
public async Task OnPost()
{
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://localhost:7215/api/adcxx/ValidateUser");
var response = await _httpClient.SendAsync(request);
if (response.IsSuccessStatusCode)
{
var jsonResponse = await response.Content.ReadAsStringAsync();
var jobject = JObject.Parse(jsonResponse);
var message = jobject["message"];
var status = jobject["status"];
var userID = jobject["data"]["userID"];
var userName = jobject["data"]["userName"];
var userRole = jobject["data"]["userRole"];
var environment = jobject["data"]["environment"];
var statusCode = jobject["statusCode"];
Console.WriteLine(jobject);
Console.WriteLine(message);
Console.WriteLine(status);
Console.WriteLine(userID);
Console.WriteLine(userName);
Console.WriteLine(userRole);
Console.WriteLine(environment);
Console.WriteLine(statusCode);
}
}
}