Asp.net mvc 将状态变量传递给提供程序并从回调函数中获取它

Asp.net mvc 将状态变量传递给提供程序并从回调函数中获取它,asp.net-mvc,oauth,oauth-2.0,dotnetopenauth,google-oauth,Asp.net Mvc,Oauth,Oauth 2.0,Dotnetopenauth,Google Oauth,我被告知DotNetOpenAuth可以将附加信息传递给状态变量,传递的值将在Google的回调字符串中。有人知道在哪里可以得到这方面的代码示例吗?Facebook、twitter、yahoo和其他提供商是否也支持状态变量 谢谢 更具体地说,在Microsoft.Web.WebPages.OAuth.OAuthWebSecurity中,方法RequestAuthentication没有传递代码参数的参数。这是否意味着DotNetOpenAuth最新版本中还没有默认支持?我是否需要使用OAuthW

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

谢谢


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

该“state”变量是OAuth 2.0规范的一部分,第4.1.2节要求服务器在客户端发送时作出响应,因此,任何声称正在做OAuth 2的人都应该支持它


对于学究:

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

public ActionResult ExternalLogin(string provider, string returnUrl, string from)
{
    return new ExternalLoginResult(provider, Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl, From = from}));
}

MVC4附带的OAuthWebSecurity的Google客户端基于OpenID。你可能对我感兴趣