2

我希望完成的是通过 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 应用程序时,我在尝试创建运行时对象时收到 500 错误,远程调试器实际上只是在下面的行中死掉了,我什至在 api 的流日志接口中看不到任何日志来提供更多信息错误。

var runtime = Runtime.FromAppSettings(Request);

关于如何获得令牌的任何想法?

使用 web api 实现 microsoftaccount 身份验证的文档有点稀缺,任何对你们有帮助的示例或文档的链接?

另外,apiapp.json 文件真的有必要吗?他们在示例中创建了一个,但通过 Azure 刀片的身份验证设置似乎可以正常工作,并且将 apiapp.json 文件从 api 中删除似乎并不重要。最后,我希望我的 web api 能够通过 microsoft 帐户维护身份验证,无论它移动到哪里,所以我认为在某个地方我需要指定一些设置,但也不能真正把它放在一起。

4

1 回答 1

1

看起来您正在使用旧模型来构建已被弃用的 API 应用程序(涉及网关)。我相信它仍然受支持,但是构建 API 应用程序的官方方式已经改变,您可能会发现它更易于使用。可以在此处找到更多信息:https ://azure.microsoft.com/en-us/documentation/articles/app-service-api-whats-changed/

利用 Microsoft 帐户身份验证的文档位于:https ://azure.microsoft.com/en-us/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;
于 2016-02-09T19:11:54.267 回答