3

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

私のプリフライト リクエストにはユーザーに関する情報が含まれていないため、これが可能かどうかはわかりません。しかし、これは一般的なシナリオのように思えますね。自分のクレームにアクセスできれば理想的ですが、この時点でユーザーについて何も知らないことは明らかです。私はこれに間違って近づいていますか?

4

0 に答える 0