2012-04-20 56 views
0

我已经创建了一个使用DotNetOpenAuth将OAuth2 AuthorizationServer和ResourceServer一体化的项目。DotNetOpenAuth ResourceServer从本金获取用户ID

我想要做的就是使用OAuth作为伪认证,其中客户端通过OAuth授权获取用户配置文件的关联资源。

在ResourceServer上,我可以使用resourceServer.VerifyAccess(request, out result); 成功返回IPrincipal。我的问题是:在ResourceServer(与授权服务器相同)上,如何从Principal(或者我有权访问的任何其他东西)获取用户/用户ID /用户配置文件。主体名称看起来像一个base64编码的字符串。但这似乎不符合我所能访问的任何其他内容。

回答

0

DotNetOpenAuth的ResourceServer.VerifyAccess方法为您提供了一个委托人,其名称是授予访问令牌的用户,其角色是授予该令牌的范围。

如果您看到一些base64编码的字符串将主体名称视为事物,这听起来像您应该仔细检查您的代码。我建议你从授权服务器代码中开始,你调用AuthorizationServer.PrepareApproveAuthorizationRequest传递授权用户名。确保它是应该的。

这是非常不可能的,它在运输过程中被破坏,因为令牌被加密和签名。