Asp.net Facebook oauth2登录返回(400)错误请求

Asp.net Facebook oauth2登录返回(400)错误请求,asp.net,vb.net,facebook,facebook-graph-api,Asp.net,Vb.net,Facebook,Facebook Graph Api,我正在将我的C#ASP.NET MVC 4 facebook登录转换为VB ASP.NET MVC 2版本项目 不幸的是,我得到了这个错误,我不能找出问题是什么 主要错误:错误请求400错误。 更详细的错误: WWW-Authenticate:OAuth“Facebook平台”“无效的\u代码”“验证验证代码时出错。请确保您的重定向\u uri与您在OAuth对话框请求中使用的相同” 控制器: <HttpPost> _ <AllowAnonymous> _

我正在将我的C#ASP.NET MVC 4 facebook登录转换为VB ASP.NET MVC 2版本项目

不幸的是,我得到了这个错误,我不能找出问题是什么

主要错误:错误请求400错误。 更详细的错误:

WWW-Authenticate:OAuth“Facebook平台”“无效的\u代码”“验证验证代码时出错。请确保您的重定向\u uri与您在OAuth对话框请求中使用的相同”

控制器:

<HttpPost> _
    <AllowAnonymous> _
    Public Function ExternalLogin(provider As String, returnUrl As String) As ActionResult
        Return New ExternalLoginResult(provider, Url.Action("ExternalLoginCallback", New With { _
            Key .ReturnUrl = returnUrl _
        }))
    End Function



    Public Function ExternalLoginCallback(returnUrl As String) As ActionResult
        Dim result As AuthenticationResult = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", New With { _
            Key .ReturnUrl = returnUrl _
        }))

        ' Eind resultaat krijg je hier
        If result.IsSuccessful Then
            ' Temporary Properties
            Dim strTempGeslacht As String = result.ExtraData("gender")



            ' Properties
            Dim strVoornaam As String = result.ExtraData("firstname")
            Dim strAchternaam As String = result.ExtraData("lastname")
            Dim strEmail As String = result.ExtraData("email")
            Dim strGeboortePlaats As String = result.ExtraData("hometown")
            Dim strWoonplaats As String = result.ExtraData("location")
            Dim arrayWerk As String() = result.ExtraData("work").Split("*"C)
            Dim intGeslacht As Integer = If(strTempGeslacht = "male", 0, 1)
            Dim intOpenID As Int64 = Int64.Parse(result.ProviderUserId)
            Dim CiDutch As New CultureInfo("nl-NL", False)
            Dim strBirthday As String = String.Format("{0:dd/MM/yyyy}", result.ExtraData("birthday"))



            ' Redirect
            Return RedirectToAction("Facebook", "Bedankt")
        End If

        ' Error
        Return RedirectToAction("Index", "Home")
    End Function


    Friend Class ExternalLoginResult
        Inherits ActionResult
        Public Sub New(provider__1 As String, returnUrl__2 As String)
            Provider = provider__1
            ReturnUrl = "http://localhost:25806/Facebook/ExternalLoginCallback"
        End Sub

        Public Provider As String
        Public ReturnUrl As String

        Public Overrides Sub ExecuteResult(context As ControllerContext)
            OAuthWebSecurity.RequestAuthentication(Provider, ReturnUrl)
        End Sub
    End Class

End Class
查询url:

"https://graph.facebook.com/oauth/access_token?client_id=607648425938521&client_secret=ff099b80cc19da0ec0870df99fa465b0&redirect_uri=http%3a%2f%2flocalhost%3a18774%2fvacatures%2fExternalLoginCallBack%3f__provider__%3dfacebook%26__sid__%3d3dda4b1db178404094cbeef339d414b9&code=AQAAHJ0UoPjqvtOLjgUJ7ipzY0j7-8FxoTx7nt_Vxq9FD0cN-DhVH8BclofFEXPsPU7Fm1YHKGSlJRcLGedHSA23sVpkbssBp5yQo3PmBkUSZ9LBuckKrkjagvz4HkgFQ_oX2DoEPDmpkKo8O97GYlBt7j185SncBcpmbi8I7DNs9Z8wGP_FGQb8Mh6iMz3SH4IB1Ae3OppthmRXEJOj9k7xiboPsAYTf3w7E6MhWU3uNnR-SfA5RkSXkLas7xUnKF7eqmPM9_3pAMj2ObOAA1e4dcKke-QABo_FGx7LV0OY1pEeKIbbu9Ag5h0SBqmGi9k

所有链接都来自于正在工作的项目C#MVC4。

我怀疑这实际上与.NET没有任何关系。在你的代码中,你有

ReturnUrl = "http://localhost:25806/Facebook/ExternalLoginCallback"
但是,您提供的查询url中的值是

http://localhost:18774/vacatures/ExternalLoginCallBack

在Facebook.com上的Facebook应用程序设置中,有一个用于返回URI的字段。此值可能与此处的值不同。您必须更改其中一个,使其匹配。这就是错误所解释的。

我怀疑这实际上与.NET无关。在你的代码中,你有

ReturnUrl = "http://localhost:25806/Facebook/ExternalLoginCallback"
但是,您提供的查询url中的值是

http://localhost:18774/vacatures/ExternalLoginCallBack

在Facebook.com上的Facebook应用程序设置中,有一个用于返回URI的字段。此值可能与此处的值不同。您必须更改其中一个,使其匹配。这就是错误所解释的。

6个小时,我花了6个小时试图找出问题所在

这只是大写B,我第一个请求是:ExternalLoginCallback,第二个请求是:ExternalLoginCallback


我同时快乐和悲伤,哈哈

6个小时,我花了6个小时试图找出问题所在

这只是大写B,我第一个请求是:ExternalLoginCallback,第二个请求是:ExternalLoginCallback


我同时快乐和悲伤,哈哈

我在那里使用的链接是我的asp.net mvc#4项目中使用的链接,我确实将其更改为,但它不起作用如果输入完整的URL会发生什么?此URL中是否有尾随斜杠?如果是这样,那么在对Oauth进程的两个调用中都需要尾部斜杠在查看您的问题时,查询uri中的值为。我很确定你的URL不匹配,这是造成这个问题的原因。我在那里使用的链接是我的asp.net mvc#4项目中使用的链接,我确实将其更改为,但它不起作用。如果输入完整的URL,会发生什么?这个URL中有尾随斜杠吗?如果是这样,那么在对Oauth进程的两个调用中都需要尾部斜杠在查看您的问题时,查询uri中的值为。我很确定你的URL不匹配,这就是造成这个问题的原因。400个错误请求也有同样的问题。必须修改ApplicationAuthProvider类中的ValidateClientRedirectUri代码。与400错误请求有相同的问题。必须修改ApplicationAuthProvider类中的ValidateClientRedirectUri代码。