【问题标题】:DotNetOpenAuth ResourceServer Get User ID from PrincipalDotNetOpenAuth ResourceServer 从 Principal 获取用户 ID
【发布时间】:2012-04-20 04:20:53
【问题描述】:

我创建了一个项目,该项目使用 DotNetOpenAuth 将 OAuth2 AuthorizationServer 和 ResourceServer 合二为一。

我想要做的是使用 OAuth 作为伪身份验证,其中 OAuth 授权客户端获取关联的资源,即用户的个人资料。

在资源服务器上我可以使用resourceServer.VerifyAccess( request, out result ); 成功返回 IPrincipal。

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

【问题讨论】:

    标签: c# asp.net-mvc dotnetopenauth


    【解决方案1】:

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

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

    它极不可能在传输过程中被损坏,因为令牌已加密和签名。

    【讨论】:

      猜你喜欢
      • 2016-11-15
      • 1970-01-01
      • 1970-01-01
      • 2020-08-21
      • 2019-12-30
      • 2021-07-18
      • 1970-01-01
      • 2019-10-31
      • 1970-01-01
      相关资源
      最近更新 更多