2016-03-29 11 views
0

すべて正常に機能している定型のOWIN認証を使用してMVCプロジェクトを作成しました。SignalR OWINの認証がMVCのサイトで失敗する

認証されたユーザーを利用せずに、完全に機能していたSignalRハブをリアルタイムでシグナリングしてセットアップする必要がありました。

ハブクラスに[Authorize]属性を追加し、ハブに接続するページを読み込んだとき、F12 Developer Toolsのコンソールで「DENIED - 要求されたリソースにユーザー認証が必要です」という401エラーが報告されました。

[Authorize]属性を使用しなかった場合、ハブContext.Userは毎回nullであるため、OnConnectedおよび呼び出されたメソッドにContext.Userが設定されていません。これは、どのユーザーが通信しているのか分からなかったことを意味していました。

StackOverflowで見つかったその他の質問は、「Context.UserはIPrincipal IDの詳細をWebページから設定する」という行に沿った回答がありました。私のために。

ただし、ユーザーはすべてのMVCコントローラ用に設定されています。

答えて

2

問題、それは私のメインのStartup.csファイルに私が持っていたこと、して判明:

public partial class Startup 
{ 
    public void Configuration(IAppBuilder app) 
    { 
     // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888 
     app.MapSignalR(); 
     ConfigureAuth(app); 
    } 
} 

何が起こるために必要なことだったとき:

public partial class Startup 
{ 
    public void Configuration(IAppBuilder app) 
    { 
     // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888 
     ConfigureAuth(app); 
     app.MapSignalR(); 
    } 
} 

そこで、基本的SignalRがある場合OWIN認証が設定されている前にマッピングされていて、その後、SignalRのOWIN処理が行われません...もちろん、私はStackOverflowに投稿するためのオリジナルの質問を書いていたので、これをうまく処理しました!

+0

私は以前にこの問題を抱えていました。 – Luke

関連する問題