0

我创建了一个项目,该项目使用 DotNetOpenAuth 来同时实现 OAuth2 AuthorizationServer 和 ResourceServer。

我想要做的是使用 OAuth 作为伪身份验证,其中客户端由 OAuth 授权以获取作为用户配置文件的关联资源。

在 ResourceServer 上,我可以使用它resourceServer.VerifyAccess( request, out result ); 来成功返回 IPrincipal。

我的问题是:在 ResourceServer(与授权服务器相同)上,如何从 Principal(或我有权访问的任何其他内容)获取用户/用户 id/用户配置文件。主体名称看起来像一个 base64 编码的字符串。但这似乎与我可以访问的任何其他内容都不匹配。

4

1 回答 1

0

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

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

由于令牌已加密和签名,因此它在传输过程中被损坏的可能性很小。

于 2012-04-21T02:54:41.233 回答