我有一個基於mvc3的web服務,它使用Ninject來管理它的動作過濾器,這一切都很好。不過,現在我必須將SignalR集線器納入混合,並且如果可能的話,理想情況下希望在這些新集線器上重新使用現有的動作過濾器。Ninject with ActionFilters and SignalR
其中一個最重要的過濾器是CookieAuthentication過濾器,它基本上檢查給定的請求是否包含正確的身份驗證Cookie,如果該cookie不存在或無效,則會將filtercontext.result對象設置爲自定義UnauthorisedResult對象。所以在這個例子中,你可以使用這個功能,因爲SignalR據我所知不知道行動的結果,所以不知道它是否會自動取消請求等。
我試過Google搜索,但無法找到關於該主題的很多信息,我假設你不能混淆它們,因爲這兩個框架只共享底層ASP框架而不是MVC框架。
啊剛纔的那個人,我在趕時間,所以我應該提到我已經簽出的文檔,確保樞紐等,然而這一切似乎使用默認的ASP.NET授權,我希望避免這種情況,並且只是有辦法檢查cookie與請求的數據庫,而這些功能在我使用的框架內已經存在,並且都基於HttpRequest對象。然而,AuthoriseAttribute似乎對用戶有效,而不是http請求,所以我應該在那裏獲取'HttpContext.Current.Request'並忽略用戶對象? – Grofit
那麼,它使用「主機」認證。在這種情況下,主機是ASP.NET,在ASP.NET中,您可以掛接一個IHttpModule的AuthorizeRequest並將IPrincipal設置爲上下文無論您滿意。 – davidfowl