0
我正在学习NHibernate/MVC并创建一个示例应用程序,让用户存储他们自己的书籍列表。我遇到的问题是我的存储库需要当前的登录用户,但我不知道MVC Session中保留用户详细信息的最佳方式。我正在使用表单身份验证。NHibernate和MVC实例变量
登录页面
var user = userRepository.login(username,password);
Session["user"] = user;
列表页
var user = Session["user"] as user;
var books = bookRepository.getByGenre("Fiction",user);
这是通过每个HTTP请求之间的实例变量的建议呢?
感谢
所以在MVC的每一个动作都会有另外一个参数是当前用户?拥有一个全局属性让控件可以访问用户对象会不会更容易? – bob223
更容易是的,推荐no。我相信从控制器中提取会话数据的想法是允许可扩展性,并消除控制器在设置全局变量时需要做的任何假设。它还避免了在任何单元测试中模拟http会话的需要。 – fluent