2014-01-31 25 views
0

我有一個網絡應用程序,其中包含瀏覽器交付的JavaScript應用程序以及Android手機應用程序使用的服務。是否可以在同一個應用程序中使用Thinktecture的IdentityModel和System.IdentityModel SessionAuthenticationModule cookie?

javascript應用程序使用System.IdentityModel.SessionAuthenticationModule cookie進行身份驗證,移動應用程序在Authentication標頭中使用JWT令牌。

我可以配置應用程序使用System.IdentityModel.SessionAuthenticationModule和cookie作品或思考AuthorizationHandler和令牌的作品,但我不能解決如何讓他們都在同一時間工作?

這個答案Thinktecture IdentityModel AuthenticationConfiguration Mapping for Cookie - how?表明這是不可能的,但它似乎是使用自定義的cookie,而不是FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(token);

回答

0

只要在web.config中沒有授權元素的方式得到這應該工作。或者IOW使用AuthorizeAttribute代替。

但這是基於cookie的Web API身份驗證的一個普遍問題,因爲現在您已開放自己的CSRF攻擊。你真正應該做的是獨立的UI和API,並將這兩個客戶端視爲基於令牌的身份驗證的「外部」。但這當然是一個很大的架構改變(儘管方向正確)。

+0

是的一切工作正常,直到我試圖修改ClaimAuthenticationManager中導致SessionAuthenticationManager代碼無法正常工作的聲明。 – BenCr

相關問題