1

我基于 Visual Studio 2012 Web 应用程序模板创建了一个 Web 应用程序,并尝试测试添加 OOB 的 OAuth。我转到以下链接注册我的应用程序并获取客户 ID。

https://manage.dev.live.com/Applications/Index

OpenAuth.AuthenticationClients.AddMicrosoft 始终生成:输入参数“redirect_uri”的提供值无效。该值必须是一个绝对 URL,其方案为 http:// 或 https://。

但如果我按照这篇文章进行操作,我可以毫无问题地登录。(通过添加 iframe 等)

http://weblogs.asp.net/dwahlin/archive/2007/08/17/integrate-windows-live-id-authentication-into-your-website.aspx

4

2 回答 2

1

简短的回答

1)更新您的主机文件,添加行:“127.0.0.1 mynewApplication.test”

2) 在 manage.dev.live.com 中将“重定向域”设置为 http://mynewApplication.test:[PORT]

3) 在本地运行您的应用程序,确保您的浏览器中有 http://mynewApplication.test:[PORT]

4) 用微软登录

这对我来说很好。

长答案:

看起来您必须在 Ms Application 管理工具中将“重定向域”指定为某个唯一的域名,如果您在本地测试您的应用程序,您必须在主机文件中维护该域名。他们不再允许设置像“localtest.me”这样的共享域名。

如果您查看 fiddler,您会看到 MVC 将引用 URL(您在浏览器中看到的当前 URL)添加到 oauth 请求。因此,当您发送将您重定向到 Microsoft oauth 的单击按钮时,请确保您的浏览器从在 App Redirect 域中注册的相同域名加载当前页面。

于 2013-03-18T21:30:45.173 回答
0

脚步:

  1. 在以下位置注册您的应用程序:Windows Live 应用程序管理站点,请参阅使用 Windows Live 注册您的应用程序
  2. 在 API 配置下,输入您的根域,例如:

www.yourdomain.com

  1. 在 API 配置下,输入您的应用程序 URL。不要忘记包括:Account/RegisterExternalLogin

www.yourdomain.com/YourApp/Account/RegisterExternalLogin

  1. 编辑 AuthConfig.vb,取消注释OpenAuth.AuthenticationClients.AddMicrosoft并从Windows Live 应用程序管理站点复制您的clientIdclientSecret

    OpenAuth.AuthenticationClients.AddMicrosoft(
        clientId:="0000000000000", 
        clientSecret:="x0-0000000000000000")
    
  2. 在 www.yourdomain.com/YourApp 中发布您的应用程序

PS。不要忘记在Web.config (DefaultConnection)中更新您的 connectionString

于 2015-02-23T16:53:59.063 回答