我创建了一个空白的新ASP.NET MVC站点。
我已在https://account.live.com/developers/设置了一个应用程序端点,如下所示:
API设置:http://i.imgur.com/bIoV3x9.png
应用设置和代码隐藏:http://i.imgur.com/P3KFyhV.png
我尝试启动我的网站,连接到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站点?
答案 0 :(得分:8)
您的调查结果是正确的,Microsoft不允许将localhost作为redirect_uri
,并在ASP.NET Documentations中解释......
使用Facebook注册您的网站时,您可以提供" localhost"对于站点域和" http:// localhost /"对于URL,如下图所示。使用localhost可与大多数提供程序一起使用,但目前无法与Microsoft提供程序一起使用。对于Microsoft提供商,您必须包含有效的网站URL。
如果你想让它工作,你需要设置一个带有自定义主机头的IIS站点,这将要求你修改你机器中的主机文件...假设你正在Windows机器上进行开发< / p>
%SystemRoot%\system32\drivers\etc
打开hosts文件所在的路径...通常为C:\Windows\system32\drivers\etc
以管理员身份打开hosts文件,并添加与您设置的主机标头匹配的条目...
127.0.0.1 www.testsite.com
保存后,您可以打开浏览器窗口,按http://www.testsite.com