我希望完成的任务是通过Microsoft帐户身份验证提供程序连接到Visual Studio Team Services。我一直在这里关注文档(https://github.com/Azure/azure-content/blob/master/articles/app-service-api/app-service-api-dotnet-connect-to-saas.md),并且在实现方面存在一些问题。
他们使用Microsoft.Azure.AppService.ApiApps.Service包从api网关获取令牌
// Retrieve the token from the gateway
var runtime = Runtime.FromAppSettings(Request);
var dropboxTokenResult = await runtime.CurrentUser.GetRawTokenAsync("dropbox");
但是,当我发布Web应用程序时,尝试创建Runtime对象时出现500错误,远程调试器实际上只是在下面的行中消失,而且我什至在api的流日志界面中都看不到任何日志来提供有关错误。
var runtime = Runtime.FromAppSettings(Request);
关于如何获得令牌的任何想法?
使用Web API实施microsoftaccount身份验证的文档有点稀缺,是否有任何示例或文档链接对您有所帮助?
另外,apiapp.json文件是否真的必要?他们在示例中创建了一个,但是通过Azure刀片进行身份验证设置似乎可以正常进行,并且将apiapp.json文件保留在api中似乎无关紧要。最后,我希望我的Web api无论通过哪个帐户都可以通过microsoft帐户维护身份验证,因此我认为我需要指定一些设置,但实际上也无法将其组合在一起。
似乎您正在使用旧模型来构建已弃用的API应用程序(涉及网关)。我相信它仍然受支持,但是自此以来,构建API应用程序的官方方式已经改变,您可能会发现使用起来更简单。可以在这里找到更多信息:https : //azure.microsoft.com/en-us/documentation/articles/app-service-api-whats-changed/
利用Microsoft帐户身份验证的文档位于此处:https : //azure.microsoft.com/zh-cn/documentation/articles/app-service-mobile-how-to-configure-microsoft-authentication/
设置完成后,您可以通过几种不同的方式来获取令牌。您可以将其作为入站HTTP标头(x-ms-token-microsoftaccount-access-token)找到,也可以使用App Service Server SDK来获取它:类似以下内容:
var creds = await this.User.GetAppServiceIdentityAsync<MicrosoftAccountCredentials>(this.Request);
string accessToken = creds.AccessToken;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句