Asp.net mvc 4 使用ASP.Net MVC 4身份验证验证验证代码问题时出错
我正在开发一个Asp.NETMVC4应用程序,允许该应用程序代表用户在墙上发布一些数据。我使用MVC4附带的内置oAuth支持。正如我所读到的,默认oAuth库不提供添加作用域的特性,因此为了解决这个问题,我遵循了 但我还面临一个障碍,facebook graph api抛出了这个例外:Asp.net mvc 4 使用ASP.Net MVC 4身份验证验证验证代码问题时出错,asp.net-mvc-4,facebook-graph-api,oauth,facebook-c#-sdk,Asp.net Mvc 4,Facebook Graph Api,Oauth,Facebook C# Sdk,我正在开发一个Asp.NETMVC4应用程序,允许该应用程序代表用户在墙上发布一些数据。我使用MVC4附带的内置oAuth支持。正如我所读到的,默认oAuth库不提供添加作用域的特性,因此为了解决这个问题,我遵循了 但我还面临一个障碍,facebook graph api抛出了这个例外: { "error": { "message": "Error validating verification code. Please make sure your redirect_uri
{
"error": {
"message": "Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request",
"type": "OAuthException",
"code": 100
}
}
当我搜索这个问题时,我发现
但是,即使在末尾加“/”也不能解决问题,我也会不断遇到同样的错误。
我有以下oAuth对话框url:
https://www.facebook.com/login.php?skip_api_login=1&api_key=431734730282664&signed_next=1&next=https%3A%2F%2Fwww.facebook.com%2Fdialog%2Foauth%3Fredirect_uri%3Dhttp%253A%252F%252Flocalhost%253A1724%252FAccount%252FExternalLoginCallback%253F__provider__%253Dfacebook%2526__sid__%253D038708985bbe463e89cfb8914a19d810%26scope%3Dpublish_stream%26客户端id%3D4317347****82664%26ret%3Dlogin&cancel\uURI=http%3A%2F%2LocalHost%3A1724%2Account%2ExternalLogincCallback%3F\uU提供程序\uuuuuuu%3Dfacebook%26\uuuu sid\uuuu%3D0387085BBE463E89CFB8914A19D810%26错误%3Daccess被拒绝%26错误代码%3D200%26错误描述%3DPermissions%26错误原因%3dU被拒绝%23\uCode
并遵循从graph api返回的url
https://graph.facebook.com/oauth/access_token?client_id=431734730282664&redirect_uri=http://localhost:1724/Account/ExternalLoginCallback?__provider__=facebook&__10月9日的CC586月10日的10月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8月8日的8日的8月8日的8日的8日的8月8日的8日的8月8日的8月8日的8日的8月8日的8月8日的8日的8月8日的8月8日的8月8日的8日的8日的8日的8月8月8日的8日的8日的8月8日的8日的8月8日的8月8月8日的8月8日的8日的8日的8日的8月8日的5XTIJEN3MC8ONPV86T802NHDS0STFSCWOGJXQEE9KIOK5-0BnR384qrI7DGNf_oAIb88L83Z_mITvnv_dkq265lZztmkkOt0
我没有发现重定向uri之间的差异,因为文档中说两个URL中的重定向uri必须相同。
有谁能提出一个解决方案吗?我想知道我遇到了同样的问题,但原因不同。
显示的返回路径不同,但它们必须完全相同,如下所示
第一个共同响应:
http://localhost:1724/Account/ExternalLoginCallback?__provider__=facebook&__sid__=038708985bbe463e89cfb8914a19d810
另一方面,第二个是:
http://localhost:1724/Account/ExternalLoginCallback?__provider__
这些值是使用浏览器解码的,随后在chrome网络调试器上检查
如果您在第二秒钟注意url,您可能会注意到url路径编码不正确
字符“/”、“:”、“&”、“;”第一个url中的“=”无法读取,而第二个url则清晰可读
要解决此问题,可能需要对其进行编码
也许做这件事是有用的