2012-04-27 56 views
7

在ASP.NET(MVC和WebAPI)中,User Identity對象如何使用FormsAuthentication cookie中的數據進行初始化?用戶身份如何|在應用程序生命週期中的主體集

我想要做的是使用兩種類型的身份驗證,基於cookie和基於自定義標題。由於AuthorizeAttribute類只檢查User.Identity.IsAuthorized()方法並且不使用特定於FormsAuthentication的代碼,那麼意味着我只需手動設置User.Identity對象,不管是在global.asax還是在DelegatingHandler中。

那麼,我該如何設置User.Identity?框架如何使用FormsAuthentication自動設置它?

回答

1

這是related answer

可以在處理程序,模塊或Global.asax中設置標識。您可以在請求生命週期的任何時候修改它,但通常在PostAuthenticateRequest中最好的地方。此時,FormsAuthentication已經完成了工作,您可以擴充或替換HttpContext.Current.User。

+1

所以根據阿里諾斯塔德所說的,一旦我設置了身份,如果他們添加了'User.Controller',身份會帶到那個? – 2012-04-27 16:13:13

0

ASP.NET MVC控制器有Controller.User但Web API沒有。它現在是requested被放入。

+1

我可以這樣做:'HttpContext.Current.User' – 2012-04-27 15:48:26

+0

@Lolcoder這並不好。這是來自靜態/線程存儲區域的過去幾天的暫停。 **它不能被單元測試**。 – Aliostad 2012-04-27 15:51:13

相關問題