C# DotNetOpenAuth ResourceServer从主体获取用户ID

C# DotNetOpenAuth ResourceServer从主体获取用户ID,c#,asp.net-mvc,dotnetopenauth,C#,Asp.net Mvc,Dotnetopenauth,我创建了一个项目,它使用DotNetOpenAuth在一个应用程序中实现OAuth2 AuthorizationServer和ResourceServer 我想做的是使用OAuth作为伪身份验证,其中客户端由OAuth授权以获取相关资源,即用户的配置文件 在ResourceServer上,我可以使用ResourceServer.VerifyAccess(请求,输出结果) 以成功返回IPrincipal 我的问题是:在ResourceServer(与授权服务器相同)上,如何从主体(或我有权访问的任

我创建了一个项目,它使用DotNetOpenAuth在一个应用程序中实现OAuth2 AuthorizationServer和ResourceServer

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

在ResourceServer上,我可以使用
ResourceServer.VerifyAccess(请求,输出结果)
以成功返回IPrincipal


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

DotNetOpenAuth的
ResourceServer。VerifyAccess
方法提供一个主体,其名称是授权访问令牌的用户,其角色是授予该令牌的作用域

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

由于令牌是加密和签名的,所以它在传输过程中极不可能损坏