PostAuthenticateRequest 多次触发

2024-03-13

我有 Forms 身份验证,需要将自定义对象存储在 HttpContext.Current.User 和 Thread.CurrentPrincipal 中。

为此,我监听 PostAuthenticateRequest 事件,然后从数据库读取需要存储在 HttpContext.Current.User 和 Thread.CurrentPrincipal 中的所有用户数据,然后实例化自定义 IPrincipal 和 IIdentity 对象并将它们分配给上面的对象地点。

问题是,由于某种原因,PostAuthenticateRequest 对于单个请求会触发多次。这会导致不必要的数据库往返,从而损害性能。

我应该如何解决这个问题? (ASP.NET MVC 2)

Thanks.


您确定它针对单个请求运行多次吗?请记住,页面上引用的每个资源(例如图像和样式表)都将触发此事件,因为它们被视为单独的请求。最好建议您短暂缓存自定义对象并检查它们是否存在于缓存中,如果不存在则仅访问数据库。

您将需要对缓存实施一些锁定,因为这些请求通常非常接近地发生。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PostAuthenticateRequest 多次触发 的相关文章

随机推荐