Owin auth - как получить IP-адрес клиента, запрашивающего токен auth

используя Owin Security, я пытаюсь сделать API иметь 2 метода аутентификации.

есть ли свойство в context переменной (OAuthGrantResourceOwnerCredentialsContext), что позволяет мне получить доступ к IP-адрес на клиент отправка первоначального запроса на токен аутентификации в API?

основная полоса моего метода auth выглядит так:

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.)
    }
}

из того, что я понимаю remoteIpAddress и localIpAddress являются API (т. е. где размещен API). Как узнать, с какого IP-адреса (и порта) был отправлен запрос?

должен ли клиент отправлять эту информацию самостоятельно?

должен ли я добавить дополнительные параметры в путь auth? (кроме типичного username, password, grant_type)?

1 ответов


Итак, чтобы ответить на мой собственный вопрос, поправьте меня, если я ошибаюсь, но:

var remoteIpAddresss = context.Request.RemoteIpAddress;

- это IP клиента адрес (пользователь, запрашивающий токен auth) и

var localIpAddress = context.Request.LocalIpAddress;

- это IP Web Api адрес (где размещается API).