2

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

我正在使用从 0.23 包升级的 DontNetOpenAuth 0.25 包,该包需要一些更改,需要一些代码更改。

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

DotNetOpenAuth.OAuth:2012-08-24T18:06:55 错误DotNetOpenAuth.OAuth - 客户端凭据授予客户端访问请求“ *省略*“被授权服务器主机拒绝。DotNetOpenAuth.OAuth2.AuthorizationServer.dll DotNetOpenAuth.Messaging.Channel 中发生了“DotNetOpenAuth.OAuth2.TokenEndpointProtocolException”类型的第一次机会异常: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 DEBUG DotNetOpenAuth.Messaging.Bindings - 绑定元素 DotNetOpenAuth.OAuth2.ChannelElements.TokenCodeSerializationBindingElement 不适用于消息。DotNetOpenAuth.Messaging.Channel: 2012-08-24T18:06:55 INFO DotNetOpenAuth.Messaging.Channel - 准备传出 AccessTokenFailedResponse (2.0) 消息:错误:未授权客户端

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 库中的 WebServerClient 对象来构造请求。MyWebServerClient.GetClientAccessToken();

//服务器端

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

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

令牌查询通过

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

0 回答 0