0

我被告知 DotNetOpenAuth 可以将附加信息传递给状态变量,并且传递的值将在 Google 的回调字符串中。任何人都知道在哪里可以获得代码示例?Facebook、twitter、yahoo 和其他提供商是否也支持状态变量?

谢谢

更具体地说,在 Microsoft.Web.WebPages.OAuth.OAuthWebSecurity 中,方法 RequestAuthentication 没有传递代码参数的参数。这是否意味着 DotNetOpenAuth 最新版本还没有默认支持?我是否需要使用 OAuthWebSecurity 中的 RegisterClient 方法来创建自定义客户端,而不是使用内置的 RegisterGoogleClient、RegisterFacebookClient 等?

4

3 回答 3

2

The “state” variable is part of the OAuth 2.0 spec and section 4.1.2 requires that the server respond if the client sends it, so anyone who claims to be doing OAuth 2 really ought to support it.

For pedants: https://www.rfc-editor.org/rfc/rfc6749#section-4.1.2

于 2013-09-14T18:45:19.630 回答
0

找到了解决方案。回调函数之后的查询字符串被放置在“状态”变量中。例如,此函数中的 From 字符串是在回调中从 Google 带回的 -

public ActionResult ExternalLogin(string provider, string returnUrl, string from)
{
    return new ExternalLoginResult(provider, Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl, From = from}));
}
于 2013-09-15T15:03:33.093 回答
0

MVC4 附带的 Google 客户端OAuthWebSecurity基于 OpenID。您可能对我编写的 OAuth2 实现感兴趣。

于 2013-09-30T23:37:16.290 回答