Localhost上的ASP.NET MVC Microsoft Live帐户身份validation
我创建了一个空白的新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帐户遇到技术问题。 请稍后再试。
但它重定向到我的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机器上进行开发
设置您的环境
- 打开IIS管理控制台并创建一个新站点
- 输入站点名称,应用程序池,物理路径以及最重要的主机标题….请参阅下面的屏幕截图
- 单击“确定”以创建站点,然后确保站点和应用程序池都在运行
- 在“运行命令”实用程序
%SystemRoot%\system32\drivers\etc
输入以下系统路径,以打开hosts文件所在的路径…通常为C:\Windows\system32\drivers\etc
-
以管理员身份打开hosts文件,并添加与您设置的主机头匹配的条目…
127.0.0.1 http://www.testsite.com
-
保存后,您可以打开浏览器窗口,在
http://www.testsite.com
按类型测试设置 - 如果它有效,那么您可以使用该url与Microsoft OAuth API或任何其他提供商(如Google,Facebook,LinkedIn等)进行测试