我想知道在httpcontext.current.items而不是httpcontext.current.user中存储自定义Principal是否有任何缺点。我知道您需要为每个请求设置它,但我也必须使用httpcontext.current.user。
提前感谢,
Pickels
答案 0 :(得分:5)
HttpContext.Current.User是“授权基础架构”期望Principal所在的位置,并将在此处查找。因此,当他在那里时,许多与授权相关的功能(例如基于IsInRole)将自动工作,当您将他存储在其他地方时,您将不得不“破解”他们的工作。
罗马
答案 1 :(得分:2)
你为什么不把它放在校长居住的地方?
http://msdn.microsoft.com/en-us/library/system.threading.thread.currentprincipal(v=VS.100).aspx
答案 2 :(得分:0)
这是一些可能对其他人有帮助的额外信息。它实际上回答了我自己的问题。
在这个项目中,他们似乎做了我以前想过的事情。它们不使用实现IPrincipal的类,但它们只是将自己的用户对象存储在HttpContext.Current.Items中。他们如何在我仍需要弄清楚的请求之间维护它。似乎他们使用了某种依赖注入。