我被告知DotNetOpenAuth可以将其他信息传递给状态变量,传递的值将存储在Google的回调字符串中。有人知道从哪里获取代码示例吗? Facebook,Twitter,雅虎和其他提供商也支持状态变量吗?
由于
更具体地说,在Microsoft.Web.WebPages.OAuth.OAuthWebSecurity中,RequestAuthentication方法没有传递代码参数的参数。这是否意味着DotNetOpenAuth最新版本没有默认支持?我是否需要在OAuthWebSecurity中使用RegisterClient方法来创建自定义客户端,而不是使用内置的RegisterGoogleClient,RegisterFacebookClient等?
答案 0 :(得分:2)
“状态”变量是OAuth 2.0规范的一部分,第4.1.2节要求服务器在客户端发送时响应,因此声称执行OAuth 2的任何人都应该支持它。
答案 1 :(得分:0)
找到解决方案。回调函数之后的查询字符串放在“状态”变量中。例如,此函数中的From字符串在回调中从Google返回 -
public ActionResult ExternalLogin(string provider, string returnUrl, string from)
{
return new ExternalLoginResult(provider, Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl, From = from}));
}
答案 2 :(得分:0)
MVC4附带的OAuthWebSecurity
的Google客户端基于OpenID。您可能对the OAuth2 implementation that I wrote感兴趣。