SignalR API(https://domainB.com)と通信するSignalR JavaScriptクライアント(https://domainA.com)があります。 Signalrバージョン2.2.0。 Apiにクッキーを使ってトークンを渡す必要があります。これはdevで動作しますが、Azure Appサービスにデプロイしても機能しません。リクエストと共にクッキーが送信されていません。SignalR Corsクッキーが送信されていません
のJavaScriptコード
//Set cookie
document.cookie = "DomainAToken=" + token + "; domain=domainA.com; path=/";
//call signalr hub
$.connection.hub.start({
withCredentials: true
}).done(init);
私はAPIのCORSポリシーを設定しています。 Owin起動:
var policy = new CorsPolicy
{
AllowAnyHeader = true,
AllowAnyMethod = true,
SupportsCredentials = true
};
policy.Origins.Add("https://domainA.com");
app.Map("/signalr", map =>
{
map.UseCors(new CorsOptions
{
PolicyProvider = new CorsPolicyProvider
{
PolicyResolver = context => Task.FromResult(policy)
}
});
map.RunSignalR(hubConfiguration);
});
応答ヘッダーを次のように返します。
とAccess-Control-Allow-Credentials:真 アクセス制御 - 許可 - 起源:ローカルホストでhttps://domainA.com
それは動作しますが、Azureの上、クッキーが設定されていません。クッキーをシグナルとのクロスドメインで動作させる方法はありませんか?
はい]を、私は問題を解決する方法でした。 azurewebsites.netとは連携していませんでした。あなたが答えの重要な部分を投稿するなら、マルコが言及したように、私はそれを正解としてマークすることを嬉しく思うでしょう。 – Bipindas