OAuth v2 Microsoft帐户连接问题

时间:2017-02-20 13:26:32

标签: oauth asp.net-identity asp.net-mvc-5 microsoft-account

我一直在尝试为我的网站实施Microsoft帐户的OAuth v2。它目前处于开发阶段,所以我正在测试localhost。该网站是ASP.NET核心MVC 5应用程序。

我已按照教程here为Twitter,Google和Facebook帐户实施OAuth。我发现这很简单,只有一些小问题,我可以通过简单的谷歌搜索来解决。

但是,我花了几天时间试图了解在我的网站上尝试使用Microsoft帐户身份验证时发生的情况。

我在Microsoft App Registration Portal中注册了一个应用程序视频here。在视频的大约6分钟,一个简短的演示展示了如何设置应用程序。您可以在以下屏幕截图中查看我的应用程序详细信息:

enter image description here

在大约7.5分钟的视频中,有一小部分解释了如何通过构建URL字符串来测试应用程序。

在向浏览器提交查询字符​​串时,页面会按预期重定向到我的应用页面,如您所见:

Microsoft Account Sign In Page

在这种情况下,我已准备好登录我的Microsoft Outlook帐户。如果我没有登录,系统会提示我登录Microsoft帐户。登录,在这种情况下,选择我已经登录的Outlook帐户会导致页面被重定向回我的网站,如下面的屏幕截图所示,但因为该网站没有发送请求,所以不希望发送回令牌登录所以没有真正发生。这是预期的行为,此时我只是测试了应用程序端点是否按预期工作。

[Redirected Back To Site[5]

下一步是测试我网站的功能。这是我一直有问题的地方。要激活Microsoft帐户登录的OAuth功能,只需在我的网站App_Start文件夹中的Startup.Auth.cs文件中取消注释几行代码,然后传入Apps ClientKey和ClientSecret值,如下面的代码所示。片段:

app.UseMicrosoftAccountAuthentication(
            clientId: System.Configuration.ConfigurationManager.AppSettings["MicrosoftOAuthClientID"],
            clientSecret: System.Configuration.ConfigurationManager.AppSettings["MicrosoftOAuthClientSecret"]);

此代码基本上为登录页面添加了一个小按钮,允许您选择Microsoft登录,如下所示:

[Microdoft Account Login Button[6]

当我单击Microsoft按钮时,出现以下错误页面:

Error Page

返回的查询字符串包含以下内容:

  

https://login.live.com/err.srf?lc=2057#error=unauthorized_client&error_description=The+client+does+not+exist.+If+you+are+the+application+developer%2c+configure+a+new+application+through+the+application+management+site+at+https://apps.dev.microsoft.com/.&state=JMxMRuKaOiYWCQw_Uqkhv3gLQn3ULlkG2miM4ymcHhTK5niXVQl5n4L0a6VoWeEKmFM7T1ciU2oQAh26_Y0i2DMjdt6BOAtpjNeMaSpBq4wbCjva9lOuctOUIWwoFdTEGvxJ4M904lUsoudd9e9cYi6eiH3JF81HB5ouQSus2ddE1sVUQLw-YB1GjUL79y2muFaBFIOIOk75oCV2IxX4cFO2rJU04K9Se6gxu698WpzR8taUB2c6tK9u0dBisckhavf0IvKB9dWQq-IVwQgvaA

任何人都知道为什么或发生了什么????

现在,我尝试了解当我尝试从我的网站测试应用程序而不是直接在我应该拥有的浏览器中的URL时,我已经阅读了我的多次搜索中的一些,同时试图理解发生了什么

  

/登入微软

附加到应用程序门户配置中的重定向URL。我已经使用我设置的重定向URL进行了测试,但这不起作用。我收到了HTTP ERROR 500,因为页面signin-microsoft不存在。所以这不是我的问题。

如果有人遇到同样的问题并解决了,请提供帮助。

编辑:我应该提到我最初使用本地IISExpress尝试此操作但是在阅读了一些帖子后说它只能在IIS上完成,所以我将本地站点发布到IIS。

0 个答案:

没有答案