DotNetOpenAuth ResourceServer从Principal获取用户ID

时间:2012-04-20 04:20:53

标签: c# asp.net-mvc dotnetopenauth

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

如果你看到一些base64编码的字符串看起来像主体的名字,听起来你应该仔细检查你的代码。我建议您从授权服务器代码中开始,您可以通过授权用户名调用AuthorizationServer.PrepareApproveAuthorizationRequest。确保它应该是什么。

因为令牌已加密并签名,所以它在传输过程中不太可能被破坏。