DotNetOpenAuth.OAuth2.TokenEndpointProtocolException

时间:2012-08-24 06:21:02

标签: c# asp.net-mvc oauth-2.0

我们正在实施IAuthorizationServerHost以适应我们的网站组的OAuth2功能。

我使用的DontNetOpenAuth 0.25软件包已从0.23软件包升级,需要进行一些需要更改代码的更改。

在AuthorizationServer.HandleTokenRequest()调用期间,我得到以下内容

   DotNetOpenAuth.OAuth:2012-08-24T18:06:55错误DotNetOpenAuth.OAuth -   客户端凭据授予客户端访问请求   授权服务器主机拒绝了“ * OMITTED * ”。一个   第一次机会异常的类型   发生了'DotNetOpenAuth.OAuth2.TokenEndpointProtocolException'   DotNetOpenAuth.OAuth2.AuthorizationServer.dll   DotNetOpenAuth.Messaging.Channel:2012-08-24T18:06:55调试   DotNetOpenAuth.Messaging.Channel - 准备发送   AccessTokenFailedResponse(2.0)消息。   DotNetOpenAuth.Messaging.Bindings:2012-08-24T18:06:55调试   DotNetOpenAuth.Messaging.Bindings - 绑定元素   DotNetOpenAuth.OAuth2.ChannelElements.MessageValidationBindingElement   不适用于消息。 DotNetOpenAuth.Messaging.Bindings:   2012-08-24T18:06:55调试DotNetOpenAuth.Messaging.Bindings - 绑定   元件   DotNetOpenAuth.OAuth2.ChannelElements.TokenCodeSerializationBindingElement   不适用于消息。 DotNetOpenAuth.Messaging.Channel:   2012-08-24T18:06:55 INFO DotNetOpenAuth.Messaging.Channel - 准备好了   传出的AccessTokenFailedResponse(2.0)消息:     错误:unauthorized_client

     

DotNetOpenAuth.Messaging.Channel:2012-08-24T18:06:55调试   DotNetOpenAuth.Messaging.Channel - 发送消息:   AccessTokenFailedResponse

我可以确认client_id是否正确。

有没有人对此问题有任何建议或经验?

我尝试使用chrome的REST控制台手动创建请求并获得相同的结果。

根据要求提供了一些代码片段(改为保护无辜者)

//客户端

public class MyOAuth2Client : OAuth2Client
{
 ...
}

上述类在MVC4 AuthConfig.cs

中注册为客户端

函数QueryAccessToken被覆盖,我使用DotNetOpenAuth lib中的WebServerClient对象来构造请求。 MyWebServerClient.GetClientAccessToken();

//服务器端

我已经实现了IAuthorizationServerHost接口并构建了授权服务器;

AuthorizationServer _authorizationServer = new AuthorizationServer( new     OAuth2AuthorizationServerHost() );

令牌查询通过

处理
public ActionResult Token()
{
  _authorizationServer.HandleTokenRequest( Request ).AsActionResult();
}

0 个答案:

没有答案