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);
}
}
Мой предпечатный запрос не содержит никакой информации о пользователе, поэтому я не уверен, что это возможно. Но мне кажется, что это обычный сценарий, не так ли? Было бы идеально, если бы у меня был доступ к моим претензиям, но, очевидно, мы ничего не знаем о пользователе на данный момент. Я подхожу к этому неправильно?