8

MVC OAUTH VS2012 模板 VB.Net

我正在添加 OAuth,以便我的用户可以通过 Facebook 等登录。我在 RegisterAuth 函数中输入了我的 clientSecret 和 ClientID。当我运行代码时,我得到: -

为输入参数“redirect_uri”提供的值无效。预期值为“ https://login.live.com/oauth20_desktop.srf ”或与为此客户端应用程序注册的重定向 URI 匹配的 URL。”

我到处搜索以找到输入 URL 的位置。我认为它默认为“/Account/ExternalLoginCallback”,但这对外部授权者没有用。

我认为这将是显而易见的,但我只是看不到它!

谢谢约翰

4

4 回答 4

10

Lukos 的回答很好,但在 ASP.NET MVC 5 中,我相信默认 URL 重定向已经改变。

使用 MVC 5(在提琴手的帮助下)我看到我们需要使用:(当然用您的站点名称替换 mysite)

Root domain:
www.mysite.com

Redirect URLs:
http://www.mysite.com/signin-microsoft

请注意重定向 URL 末尾所需的“/signin-microsoft”。

如果这仍然对您不起作用,请使用 fiddler 并查看来自 /Account/Login 的 POST 并在响应标头中找到 redirect_uri 值。

于 2014-02-25T06:58:34.820 回答
3

当您向身份提供者注册帐户时,会将 redirect_uri 添加到身份提供者中。发生这种情况是为了当您重定向到他们的站点以登录时,它知道在身份验证发生后重定向回的位置。

注册时通常总是需要 URI,以避免人们更改它并在网络钓鱼网站中使用它来捎带您的帐户。您所说的路径对于 ASP.net MVC 是正确的(对于 Web 表单是不同的),但需要是绝对的,以便提供者可以重定向。像这样的东西:

http://www.mysite.com/Account/ExternalLoginCallback

请注意,某些提供商(绝对是 Google)不允许此 url 是您在本地测试站点时可能想要使用的 localhost。如果您需要这样做,您可以在本地创建一个主机条目,将 www.something.com 指向 localhost,然后在您的提供商处使用 www.something.com 注册 url。

于 2013-04-16T10:41:48.617 回答
1

如果您还没有弄清楚,对于 OAuth 2,您必须在 Microsoft 应用程序页面的“添加平台”下添加这些安全链接(以“/signin-microsoft”结尾),以用作重定向 URL。

于 2016-05-16T13:12:11.237 回答
0

Lukos 的回答对我有用,但它并没有立即起作用,我只需要等待几分钟让 MS 真正更新重定向 URI。

我按照本教程进行操作,Microsoft OAuth 现在可以使用:http: //blogs.msdn.com/b/webdev/archive/2012/09/19/configuring-your-asp-net-application-for-microsoft-oauth-account .aspx

于 2013-12-03T10:57:14.440 回答