Asp.Net:在httpcontext.current.items中存储Principal

时间:2010-05-06 12:47:31

标签: .net asp.net asp.net-mvc

我想知道在httpcontext.current.items而不是httpcontext.current.user中存储自定义Principal是否有任何缺点。我知道您需要为每个请求设置它,但我也必须使用httpcontext.current.user。

提前感谢,

Pickels

3 个答案:

答案 0 :(得分:5)

HttpContext.Current.User是“授权基础架构”期望Principal所在的位置,并将在此处查找。因此,当他在那里时,许多与授权相关的功能(例如基于IsInRole)将自动工作,当您将他存储在其他地方时,您将不得不“破解”他们的工作。

罗马

答案 1 :(得分:2)

答案 2 :(得分:0)

这是一些可能对其他人有帮助的额外信息。它实际上回答了我自己的问题。

http://kigg.codeplex.com/

在这个项目中,他们似乎做了我以前想过的事情。它们不使用实现IPrincipal的类,但它们只是将自己的用户对象存储在HttpContext.Current.Items中。他们如何在我仍需要弄清楚的请求之间维护它。似乎他们使用了某种依赖注入。