我创建了一个项目,该项目使用DotNetOpenAuth在一个实现OAuth2 AuthorizationServer和ResourceServer。
我想要做的是使用OAuth作为伪身份验证,其中OAuth授权客户端获取用户配置文件的关联资源。
在ResourceServer上我可以使用resourceServer.VerifyAccess( request, out result );
成功返回IPrincipal。
我的问题是:在ResourceServer(与授权服务器相同)上,如何从Principal(或我有权访问的任何其他内容)获取用户/用户ID /用户配置文件。 Principal名称看起来像base64编码的字符串。但这似乎与我可以访问的任何其他内容都不匹配。
答案 0 :(得分:0)
DotNetOpenAuth的ResourceServer.VerifyAccess
方法为您提供了一个主体,其名称是授权访问令牌的用户,其角色是授予该令牌的范围。
如果你看到一些base64编码的字符串看起来像主体的名字,听起来你应该仔细检查你的代码。我建议您从授权服务器代码中开始,您可以通过授权用户名调用AuthorizationServer.PrepareApproveAuthorizationRequest
。确保它应该是什么。
因为令牌已加密并签名,所以它在传输过程中不太可能被破坏。