ASP.NET Web API: получение идентификатора клиента по предварительному запросу

Я включил CORS в своем проекте ASP.NET Web API, и мне нужен способ идентифицировать пользователя, делающего предварительный запрос. Это потому, что каждый клиент имеет свое собственное разрешенное происхождение.

Вот что мой CorsPolicyProvider похоже:

public class MyCorsPolicyProvider : ICorsPolicyProvider {

    private CorsPolicy _policy;

    public MyCorsPolicyProvider() {
        _policy = new CorsPolicy {
            AllowAnyMethod= true,
            AllowAnyHeader = true
        };
    }

    public Task<CorsPolicy> GetCorsPolicyAsync(HttpRequestMessage request, CancellationToken cancellationToken) {
        var clientId = ""; // How do I get this? Getting the user name or any way to uniquely identify the user is fine.
        Client client = ClientManager.FindClient(clientId);

        if (client != null && !string.IsNullOrEmpty(client.AllowedOrigin)) {
            _policy.Origins.Add(client.AllowedOrigin);
        }

        return Task.FromResult(_policy);
    }
}

Мой предпечатный запрос не содержит никакой информации о пользователе, поэтому я не уверен, что это возможно. Но мне кажется, что это обычный сценарий, не так ли? Было бы идеально, если бы у меня был доступ к моим претензиям, но, очевидно, мы ничего не знаем о пользователе на данный момент. Я подхожу к этому неправильно?

0 ответов

Другие вопросы по тегам