我创建了一个基于Visual Studio 2012 Web应用程序模板的Web应用程序,并尝试测试添加了OOB的OAuth。我转到以下链接注册我的应用程序并获得客户端ID。
https://manage.dev.live.com/Applications/Index
OpenAuth.AuthenticationClients.AddMicrosoft始终生成:输入参数“redirect_uri”的提供值无效。该值必须是绝对URL,其方案为http://或https://。
但如果我遵循这篇文章,我可以毫无问题地登录。 (通过添加iframe等)
答案 0 :(得分:1)
简短回答:
1)更新您的主机文件,添加以下行:“127.0.0.1 mynewApplication.test”
2)在manage.dev.live.com中将“重定向域”设置为http://mynewApplication.test:[PORT]
3)在本地运行您的应用程序,确保您的浏览器中有http://mynewApplication.test:[PORT]
4)使用Microsoft登录
这对我来说很好。
答案很长:
看起来您必须在Ms应用程序管理工具中将“重定向域”指定为某个唯一的域名,如果您在本地测试应用程序,则必须在主机文件中维护该域名。他们不允许再设置像“localtest.me”这样的共享域名。
如果您查看提琴手,您会看到MVC将引用URL(您在浏览器中看到的当前URL)添加到oauth请求中。因此,当您发送单击按钮将您重定向到Microsoft oauth时,请确保您的浏览器从同一域名加载当前页面,该域名已在App Redirect域中注册。
答案 1 :(得分:0)
步骤:
www.yourdomain.com
www.yourdomain.com/YourApp/Account/RegisterExternalLogin
修改AuthConfig.vb,取消注释 OpenAuth.AuthenticationClients.AddMicrosoft 并从 Windows Live应用程序管理网站复制 clientId 和<强> clientSecret 强>
OpenAuth.AuthenticationClients.AddMicrosoft(
clientId:="0000000000000",
clientSecret:="x0-0000000000000000")
在www.yourdomain.com/YourApp
PS。不要忘记在 Web.config (DefaultConnection)中更新您的connectionString