我在ASP.NET Web API项目中启用了CORS,我需要一种方法来识别发出预检请求的用户。这是因为每个客户都有自己的允许来源。
这是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);
}
}
我的预检请求并不包含有关用户的任何信息,因此我不确定这是否可行。但在我看来,这是一种常见的情况,不是吗?如果我可以访问我的声明,那将是理想的,但显然我们现在对这个用户一无所知。我接近这个错误吗?