0

我正在使用我的自定义 IPrincipal,因为我需要一些额外的字段,例如 id 和密码(登录到外部 wcf 服务)。我在 Application_PostAuthenticateRequest 事件中设置主体,但必须在每个请求上完成。我想将它缓存在某个地方,但最好的解决方案是什么?会话不可用。我有一个密码,所以我不想使用 FormsAuthenticationTicket,即使它是加密的。HttpContext.Current.Items 仅存储一个请求的值。对象应用程序和缓存可用于每个用户。其他的可能性是什么?

4

1 回答 1

1

存储可能无限量的自定义信息的最佳选择是 cookie。但是请记住,Forms cookie 的大小是有限的,如果超出大小,基础架构将无法正常工作。

一种可能的方法是切换到由SessionAuthenticationModule. 如果您使用表单身份验证,我已经写了一篇关于如何无缝切换到此模块的博客:

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

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

于 2012-10-30T09:36:50.603 回答