我正在使用DotNetOpenAuth实现OAuth2提供程序。
使用隐式流,我能够在参数CreateAccessToken
内将额外数据传递给函数IAuthorizationServerHost
((IAccessTokenRequest accessTokenRequestMessage)
)并将其分配给令牌:
accessToken.ExtraData.Add("DeptID", accessTokenRequestMessage.ExtraData["DeptID"].ToString());
我完成了在Auhtorize端点中添加EndUserAuthorizationRequest
内的信息。
问题在于使用授权代码流并执行相同的操作,param (IAccessTokenRequest accessTokenRequestMessage)
总是有一个空的ExtraData集合。
我认为这是因为使用此流程会再次调用Token端点,并且信息会丢失。
我怎样才能将此信息传递给CreateAccessToken函数? 提前谢谢。
答案 0 :(得分:1)
我将信息传递给令牌创建的唯一方法是使用User属性:
var response = this.AuthServer.PrepareApproveAuthorizationRequest(AuthorizationRequest, userInfoString);
我已经传递了所需信息的加密字符串JSON序列化。然后,从CreateAccessToken函数中,我使用Reflection over IAccessTokenRequest参数检索了该值。
这不是我想要的优雅解决方案,但至少它起作用了!