我创建了一个通用应用程序和一个天蓝色的移动服务。我按照azure网站上提供的添加微软帐户身份验证的教程进行了操作。我正在使用最新的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;
}
以下事实已经过验证:
在azure门户网站的身份标签页中,输入并保存了客户端ID和密码。但是,没有package-SID(教程中也没有提到)。
我下载了使用移动服务创建的服务项目,并将其添加到我的解决方案中。此外,我已将SetIsHosted(true)标志添加到WebApiConfig类。最后,我将AuthorizeLevel属性添加到TodoItemController并将其设置为User Level。该服务已成功发布到azure。
当我运行我的应用程序并调用Login时,将导致401异常。如果我在本地或托管它运行它无关紧要。
有什么想法吗?
答案 0 :(得分:0)
此功能 - 基于来自客户端SDK for Microsoft帐户(实时SDK)或Facebook的信息的身份验证 - 目前在.NET后端移动服务中不受支持。 .NET后端支持的是通过Microsoft / Facebook / Google / Twitter的Web界面进行身份验证,或者对Azure Active Directory进行客户端身份验证。您希望的功能支持应该在即将发布的版本中实现。您可以查看Azure Mobile team blog有关何时发布的公告。