Localhost上的ASP.NET MVC Microsoft Live帐户身份validation

我创建了一个空白的新ASP.NET MVC站点。

我在https://account.live.com/developers/上设置了一个应用程序端点,如下所示:

API设置: http : //i.imgur.com/bIoV3x9.png API设置

应用程序设置和代码隐藏: http : //i.imgur.com/P3KFyhV.png 应用程序设置和代码隐藏

我尝试启动我的网站,连接到https://localhost:44300/ ,点击“登录”,然后点击“Microsoft”,我得到一个页面,上面写着:

微软帐户

我们无法完成您的请求

Microsoft帐户遇到技术问题。 请稍后再试。

但它重定向到我的URL是:

https://login.live.com/err.srf?lc=1033#error=invalid_request&error_description=The%20provided%20value%20for%20the%20input%20parameter%20’redirect_uri’%20is%20not%20valid。%20The% 20预期%20value%20is%20’https : //login.live.com/oauth20_desktop.srf’%20或%20a%20URL%20which%20匹配%20%20redirect%20URI%20注册%20for%20this%20client%20应用

我相信redirect_uri无效。 期望值是oauth20_desktop.srf的一些URI。 我不知道世界上到底发生了什么/问题是什么。 任何人都可以了解我必须做些什么来测试Microsoft帐户登录到我的localhost运行的MVC站点?

您的发现是正确的,Microsoft不允许将localhost作为redirect_uri并且在ASP.NET Documentations中进行了解释……

使用Facebook注册您的站点时,您可以为站点域提供“localhost”,为URL提供“http:// localhost /”,如下图所示。 使用localhost适用于大多数提供程序,但目前无法与Microsoft提供程序一起使用。 对于Microsoft提供商,您必须包含有效的网站URL。

如果你想让它工作,你需要设置一个带有自定义主机头的IIS站点,这将要求你修改机器中的主机文件…假设你正在Windows机器上进行开发

设置您的环境

  1. 打开IIS管理控制台并创建一个新站点
  2. 输入站点名称,应用程序池,物理路径以及最重要的主机标题….请参阅下面的屏幕截图

在此处输入图像描述

  1. 单击“确定”以创建站点,然后确保站点和应用程序池都在运行
  2. 在“运行命令”实用程序%SystemRoot%\system32\drivers\etc输入以下系统路径,以打开hosts文件所在的路径…通常为C:\Windows\system32\drivers\etc
  3. 以管理员身份打开hosts文件,并添加与您设置的主机头匹配的条目…

    127.0.0.1 http://www.testsite.com

  4. 保存后,您可以打开浏览器窗口,在http://www.testsite.com按类型测试设置

  5. 如果它有效,那么您可以使用该url与Microsoft OAuth API或任何其他提供商(如Google,Facebook,LinkedIn等)进行测试