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

时间:2014-07-31 01:16:19

标签: c# asp.net asp.net-mvc-4 oauth oauth-2.0

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

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

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

应用设置和代码隐藏:http://i.imgur.com/P3KFyhV.png App Settings and Code-Behind

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

  

Microsoft帐户

     

我们无法完成您的请求

     

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

但它重定向到我的网址是:

https://login.live.com/err.srf?lc=1033#error=invalid_request&error_description=The%20provided%20value%20for%20the%20input%20parameter%20 'REDIRECT_URI' %图20是%20not%20valid。%第二十条%20expected%20value%图20是%20 'https://login.live.com/oauth20_desktop.srf' %20or%20A%20URL%20which%20matches%第二十条%20redirect% 20URI%20registered%20for%20this%20client%20application

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

1 个答案:

答案 0 :(得分:8)

您的调查结果是正确的,Microsoft不允许将localhost作为redirect_uri,并在ASP.NET Documentations中解释......

  

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

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

设置环境

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

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

      127.0.0.1 www.testsite.com

    4. 保存后,您可以打开浏览器窗口,按http://www.testsite.com

    5. 中的类型测试设置
    6. 如果有效,那么您可以使用该网址与Microsoft OAuth API或任何其他提供商(如Google,Facebook,LinkedIn等)进行测试