2016-04-13 6 views
0

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の上、クッキーが設定されていません。クッキーをシグナルとのクロスドメインで動作させる方法はありませんか?

答えて

0

はちょうどあなたがデフォルトのazurewebsites.netドメインでこれを使用している場合は、ブラウザが特定のドメインにクッキーを設定するブロックするので、それは動作しません理由は..です理由かもしれない何かに

を走りました。参照がこの参照してください:

https://publicsuffix.org/list/effective_tld_names.dat

をまた、このSO答え:カスタムDNSを使用して

Creating a javascript cookie on a domain and reading it across sub domains

+0

はい]を、私は問題を解決する方法でした。 azurewebsites.netとは連携していませんでした。あなたが答えの重要な部分を投稿するなら、マルコが言及したように、私はそれを正解としてマークすることを嬉しく思うでしょう。 – Bipindas

関連する問題