我一直在关注Azure移动服务教程(here),但我的身份验证过程无法正常运行。
我可以让我的手机应用程序正确登录,并且看起来字段设置正确,但是当我获得AzureActiveDirectoryCredentials时,AccessToken为空。
我用来访问Sharepoint的代码是:
var identities = await user.GetIdentitiesAsync();
AzureActiveDirectoryCredentials creds = identities.OfType<AzureActiveDirectoryCredentials>().FirstOrDefault();
return creds == null ? null : new SharepointContext(creds.AccessToken, settings);
由于AccessToken为null,我无法在示例代码中创建较低的UserAssertion,因此我的服务始终返回500错误。生成的异常是:
Exception=System.ArgumentNullException: Value cannot be null.
Parameter name: assertion
生成异常的代码如下所示:
AuthenticationContext ac = new AuthenticationContext(authority);
AuthenticationResult ar = ac.AcquireToken(sharepointURL, new ClientCredential(clientId, clientSecret), new UserAssertion(userToken));
我可以成功加载表API中的数据,因此我确信我的移动服务配置正确。
我用来访问移动服务的代码是:
JToken result = await App.MobileService.InvokeApiAsync("contacts", HttpMethod.Get, new Dictionary<string, string>());
有没有人有成功的工作?