Owin auth - 如何获取请求身份验证令牌的客户端的 IP 地址

Owin auth - how to get IP address of client requesting the auth token

使用 Owin Security,我试图让 API 有 2 种身份验证方法。

context 变量 (OAuthGrantResourceOwnerCredentialsContext) 中是否有一个 属性 让我访问 IP 地址 =]client 向 API?

发送对身份验证令牌的初始请求

我的身份验证方法的基本条如下所示:

public override async Task GrantResourceOwnerCredentials(
    OAuthGrantResourceOwnerCredentialsContext context)
{
    await Task.Run(() =>
    {
        var remoteIpAddresss = context.Request.RemoteIpAddress;
        var localIpAddress = context.Request.LocalIpAddress;


        // ... authenticate process goes here (AddClaim, etc.)
    }
}

据我了解,remoteIpAddresslocalIpAddress 是 API(即托管 API 的地方)。我如何知道发送请求的 IP 地址(和端口)?

客户是否需要自己发送此信息?

我应该向授权路径添加额外的参数吗? (除了典型的 usernamepasswordgrant_type)?

所以,回答我自己的问题,如果我错了请纠正我,但是:

var remoteIpAddresss = context.Request.RemoteIpAddress;

客户端的IP地址(用户请求授权令牌),

var localIpAddress = context.Request.LocalIpAddress;

Web Api 的 IP 地址(托管 API 的地址)。