LoginWithMicrosoftAccountAsync总是以401失败
本文关键字:失败 LoginWithMicrosoftAccountAsync | 更新日期: 2023-09-27 18:02:41
我创建了一个通用的应用程序和一个azure移动服务。我按照azure网站上提供的教程添加了microsoft帐户身份验证。我正在使用最新的Live SDK。
客户端,我使用的代码,这是或多或少直接从教程:
const string ReferralUrl = "https://my-url-here.azure-mobile.net/";
static MobileServiceClient MobileService = new MobileServiceClient(
"https://my-url-here.azure-mobile.net/",
"my key");
MobileServiceUser _user;
private LiveConnectSession _session;
private async Task Authenticate()
{
var authClient = new LiveAuthClient(ReferralUrl);
while (_session == null)
{
var result = await authClient.LoginAsync(new[] { "wl.basic" });
if (result.Status == LiveConnectSessionStatus.Connected)
{
_session = result.Session;
var client = new LiveConnectClient(result.Session);
var meResult = await client.GetAsync("me");
return;
}
else
{
break;
}
}
_session = null;
}
public async Task<bool> Login()
{
try
{
await Authenticate();
_user = await MobileService
.LoginWithMicrosoftAccountAsync(_session.AuthenticationToken);
}
catch (Exception ex)
{
//Debug.WriteLine(ex.Message);
//return false;
}
return true;
}
以下事实已被验证此应用程序:
- 商店条目已创建
- 商店条目已经与通用应用程序相关联(这已经在win8.1和wp8.1项目中执行)
- 商店应用程序有以下设置:
- 手机或桌面:是
- jwt:是的 <
- 安全:激活/gh>
- 重定向url:设置为https://my-url-here.azure-mobile.net/login/microsoftaccount
在azure门户的identity选项卡中,已经输入并保存了客户端id和密钥。但是,没有package-SID(这在本教程中也没有提到)。
我下载了使用移动服务创建的服务项目,并将其添加到我的解决方案中。此外,我还在WebApiConfig类中添加了SetIsHosted(true)标志。最后,我将AuthorizeLevel属性添加到TodoItemController,并将其设置为User Level。服务已成功发布到azure。
当我运行我的应用程序并调用Login时,它将导致401异常。不管我是在本地运行还是在主机上运行。
任何想法?
此功能-基于来自Microsoft帐户(live SDK)或Facebook的客户端SDK的信息的身份验证-目前在移动服务的。net后端不支持。. net后端支持的是通过web界面对Microsoft/Facebook/Google/Twitter进行身份验证,或者对Azure Active Directory进行客户端身份验证。对您想要的特性的支持应该在即将发布的版本中实现。你可以查看Azure Mobile团队的博客,了解它何时上线。