2013-05-03 41 views
0

在第二次调用Client.ProcessUserAuthorization();后,我得到了OAuth的服务器的代码,我得到一个异常:Error occurred while sending a direct message or getting the response.AccessTokenAuthorizationCodeRequestC“错误”:“INVALID_REQUEST”

这里是最后一部分从log4net的拍摄日志文件,完整的日志记录在此要点:https://gist.github.com/tonyeung/5513769

2013-05-03 15:14:41,292 (GMT-5) [10] DEBUG DotNetOpenAuth.Messaging.Channel - Sending AccessTokenAuthorizationCodeRequestC request. 
2013-05-03 15:14:41,393 (GMT-5) [10] DEBUG DotNetOpenAuth.Http - HTTP POST http://localhost:38828/OAuth/Token 
2013-05-03 15:14:41,450 (GMT-5) [10] ERROR DotNetOpenAuth.Http - http://localhost:38828/OAuth/Token returned 400 BadRequest: Bad Request 
2013-05-03 15:14:41,450 (GMT-5) [10] DEBUG DotNetOpenAuth.Http - WebException from http://localhost:38828/OAuth/Token: 
{"error":"invalid_request"} 

我上传解决https://github.com/tonyeung/dotnetopenauth
入口点是在客户端项目的家庭控制器上的有关行动。
解决方案是在最新的nuget dnoa软件包VS2012中。 Nuget恢复已打开。

请注意,为了理解库的工作原理,我正在实施部分功能。我确信这个错误是由于某处丢失了实现,但我不确定它是什么?

回答

0

所以看起来我缺少授权服务器中IsAuthorizationValid和CreateAccessToken的实现。请检查github存储库中存放的存根,这会导致错误消失。

编辑: 还有一个数据库验证错误,我没有陷阱。所以基本上服务器端的任何错误都会导致它看起来像这样的消息。

EDIT2: 还有一个问题,如果该网页的网址包含任何非网址编码值,它会抛出一个无效的请求。在我的情况下,我的登录页面有一个查询字符串参数returnUrl,并且我将它设置为/ Home,它不是这样,必须是:%2FHome

相关问题