1

我正在尝试使用AspNet.Security.OpenIdConnect.Server.

是否可以在授权服务器上发布令牌时将一些自定义用户数据放置到访问令牌中,然后在令牌验证和请求处理期间在资源服务器上检索它?

示例:我想向访问令牌写入用户用来获取令牌的 IP 地址。然后在资源服务器上,我想在令牌验证期间比较当前用户 IP 地址和来自令牌的 IP 地址。

另一个例子:我想将用户的角色写入令牌,然后在 WebApi 操作过滤器或操作本身中检索它们

4

1 回答 1

2

考虑简单地将 IP 地址存储为声明:

identity.AddClaim("ip_addr", HttpContext.Connection.RemoteIpAddress.ToString(),
    OpenIdConnectConstants.Destinations.AccessToken);

然后,在您的 API 控制器中,使用以下命令检索它:

var address = User.FindFirst("ip_addr").Value;
于 2017-07-05T09:53:42.593 回答