我使用Visual Studio 2015 Update 1创建了一个由Azure AD保护的简单ASP.NET MVC应用程序,并在本地进行了测试,其中一切正常。然后我将其部署到Azure网站,在认证后,应用程序失败,因为它说我使用的是“无效的客户端密钥”。经过大量调试后,我发现由于某种原因,当应用程序上传到Azure时,web.config中的ClientId会发生变化。我使用Azure中的SCM工具进入并手动编辑我的web.config文件到我的源代码中,现在一切正常。
任何人都看过这个......这是一个已知的问题吗?我现在正在工作,但想修复它,所以我不必在将来手动调整web.config。
史蒂夫
答案 0 :(得分:2)
我发现了这个问题。错误的ClientId和ClientSecret位于发布配置文件中,即“My Publishing Profile.pubxml”。我不知道从哪里得到这些价值,因为我从未提供过它们。我有一个理论......我只是将应用程序从4.52改为目标.NET 4.61。当我以4.52为目标运行发布向导时,我注意到该向导包含一个默认选中“启用组织身份验证”的框。我最好的猜测是,通过检查,它可以自动在Azure AD中创建一个新的应用程序定义,并使用客户端ID和密码。只是一个猜测,试图解释未知。
虽然修复程序只是将pubxml文件更改为与web.config和 - shazaam中的内容相匹配 - 但这一切都有效。
答案 1 :(得分:0)
如果在发布期间没有使用转换,Azure部署中没有可以更改web.config文件的逻辑。所以别的东西必须发挥作用。
我建议将repro应用程序隔离到一些小而且没有敏感位的地方,这样你就可以在GitHub上分享它以便进一步调查。此外,在执行此操作的过程中,您可能能够确定问题的根源。