我的问题是有关Xamarin表单应用程序的。 要登录我的用户,我遵循了以下教程:
为了稍后在我的应用程序中使用用户身份,我需要在连接后获取我的用户电子邮件地址。
我实际使用的方法返回了401错误。 有人知道如何解决我的问题吗?
用于连接用户的登录方法(在android应用中):
public async Task LoginUser(MobileServiceClient m)
{
var context = Android.App.Application.Context;
var store = AccountStore.Create(context, "pass");
var user = await m.LoginAsync(context, MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory, Constants.LOGIN_RETURN_URI_SCHEME);
CacheUserCredentials(m.MobileAppUri.OriginalString, user);
}
我的服务方法:
public async Task<string> GetUserId()
{
var uri = new Uri(string.Format("https://fi-mobtest.azurewebsites.net/api/UserInfo?ZUMO-API-VERSION=2.0.0", string.Empty));
var result = await azCli.InvokeApiAsync<HttpResponseMessage>("UserInfo", HttpMethod.Get, null);
//var response = await hp.GetStringAsync(ur);
//return response;
return null;
}
方法要求的api api的方法:
public string GetUserInfo()
{
HttpContext currentContext = HttpContext.Current;
string userName = currentContext.User.Identity.Name;
return userName;
}
实际上,当从Web浏览器中调用该API时,它会向我返回电子邮件地址,并且我可以从Microsoft.WindowsAzure.MobileServices包中访问UserId和MobileServiceUser的实例。
感谢您的帮助;
答案 0 :(得分:0)
我终于找到了一种检索我需要的所有信息的方法
hp.BaseAddress = new Uri("https://MyDomain.azurewebsites.net");
var msg = new HttpRequestMessage(HttpMethod.Get, "/.auth/me");
msg.Headers.Add("X-ZUMO-AUTH", azCli.CurrentUser.MobileServiceAuthenticationToken);
msg.Headers.Add("ZUMO-API-VERSION", "2.0.0");
var resp= await hp.SendAsync(msg);
var rep = await resp.Content.ReadAsStringAsync();
return r.ToString();
这样,我将获得一个json,其中包含有关当前用户的所有可用信息。