Недавно я внедрил пользовательскую аутентификацию с помощью мобильного приложения Azure - все серверные части работают нормально, а также работает мое веб-приложение, использующее эту службу мобильных приложений. Я детально протестировал серверную часть с помощью POSTMAN и при разных сценариях, все работает нормально, пока я не попытаюсь LoginAsync
на Xamarin.
Когда я передаю электронную почту и пароль в POSTMAN, я получаю следующий ответ в качестве четкого указания на то, что он работает
но когда я отправляю запрос из моего приложения, используя LoginAsync
, я получаю следующую ошибку.
Невозможно получить доступ к дочернему значению в Newtonsoft.Json.Linq.JValue
Мой код для отправки запроса довольно прост, как показано ниже
public async Task<bool> Authenticate()
{
string username = "todo@gmail.com";
string password = "todo";
string message = string.Empty;
var success = false;
var credentials = new JObject
{
["email"] = username,
["password"] = password
};
try
{
MobileServiceUser user = await client.LoginAsync("CustomAuth", credentials);
if (user != null)
{
success = true;
CreateAndShowDialog("OK", "Auth");
}
}
catch (Exception ex)
{
CreateAndShowDialog(ex, "Auth Error");
}
return success;
}
где я называю это следующим образом
private MobileServiceClient client;
client = new MobileServiceClient(applicationURL);
await Authenticate();
Есть идеи, почему я получаю Cannot access child value on Newtonsoft.Json.Linq.JValue
ошибку?
Приветствия
РЕДАКТИРОВАТЬ ПОСТ
В качестве обходного пути я временно использую InvokeApiAsync
с JObject.FromObject
вместо LoginAsync
await client.InvokeApiAsync("/.auth/login/CustomAuth", JObject.FromObject(credentials), HttpMethod.Post, null);
Я до сих пор не уверен, почему LoginAsync
не работает - пока я не найду решение, я буду продолжать использовать InvokdeApiAsync
в качестве обходного пути