2012-10-30 71 views
0

我用我自定義的IPrincipal,因爲我需要一些額外的領域,如ID和密碼(登錄到外WCF服務)。我在Application_PostAuthenticateRequest事件中設置主體,但必須在每個請求上完成。我想將它緩存在某個地方,但是最好的解決方案是什麼?會話不可用。我有一個密碼,所以即使它被加密,我也不想使用FormsAuthenticationTicket。 HttpContext.Current.Items僅爲一個請求存儲值。對象Application和Cache可用於每個用戶。什麼是其他可能性?地方存儲自定義的IPrincipal

回答

1

最好的選擇來存儲可能無限的自定義信息量將是一個cookie。但請記住,表單Cookie的大小是有限的,如果超過這個大小,基礎設施就無法工作。

可能的方法之一是切換到由SessionAuthenticationModule發出的聯合cookie。我在博客中如何做到無縫切換,該模塊上,如果您使用窗體身份驗證:

http://netpl.blogspot.com/2012/09/forms-authentication-revisited.html

http://netpl.blogspot.com/2012/09/sessionauthenticationmodule-and-dynamic.html