3

我正在使用 DotNetOpenAuth 实现 OAuth2 提供程序。使用隐式流,我能够在参数内部将额外数据传递给函数CreateAccessToken( IAuthorizationServerHost),(IAccessTokenRequest accessTokenRequestMessage)并将其分配给令牌:

accessToken.ExtraData.Add("DeptID", accessTokenRequestMessage.ExtraData["DeptID"].ToString());

我完成了它EndUserAuthorizationRequest在Authorize端点中添加信息。

问题是使用授权代码流,并且做同样的事情,参数(IAccessTokenRequest accessTokenRequestMessage)总是有一个空的 ExtraData 集合。

我想这是因为使用此流程对 Token 端点进行了第二次调用,并且信息丢失了。

如何将此信息传递给 CreateAccessToken 函数?提前致谢。

4

1 回答 1

1

我将信息传递给令牌创建的唯一方法是使用 User 属性:

var response = this.AuthServer.PrepareApproveAuthorizationRequest(AuthorizationRequest, userInfoString);

我已经传递了所需信息的 JSON 序列化的加密字符串。然后,从 CreateAccessToken 函数中,我使用 Reflection over IAccessTokenRequest 参数检索了该值。

这不是我希望的优雅的解决方案,但至少它有效!

于 2013-10-16T14:45:24.330 回答