所以我想知道,亲和的是什么?在项目中的页面之间传递数据的各种方法的缺点。
我知道:
所以我想知道你们正在使用什么技术(以及为什么),所以我可以决定使用什么技术。
例如:我的用户已登录,对于多个ActionResults,我需要UserId来访问userRepository,这是最好的方法。或者甚至有一种很好的方法可以将用户作为一个对象(然后我不必一直访问数据库)?我已经设置了一个登录系统,它的工作正常,但用户是否存放在某个地方?或者仅存储用户的一些数据?我正在使用它,例如:
FormsAuthentication.SetAuthCookie(user.Email, false);
提前致谢!
答案 0 :(得分:1)
会话:
专业人士:好的,容易的
缺点:吃记忆
参数:
专业人士:形式是“意味着”工作的方式
缺点:你最终可能会在服务器上传递大量内容或重做工作
饼干:
专业人士:从客户端和服务器访问
缺点:他们有怪癖,尤其是当他们处理服务器端并将其传回时。有锁定问题的有效全局变量
我的电话:参数。你总能有一个大的json blob
答案 1 :(得分:1)
传递用户名听起来很像身份验证。看看ASP会员https://msdn.microsoft.com/en-us/library/yh26yfzy(v=vs.140).aspx
根据您的要求,您还可以查看TempData,尽管这对于在操作之间重定向非常有用。 Using Tempdata in ASP.NET MVC - Best practice
编辑 - 根据您使用授权Cookie的事实,您应该考虑MVC授权属性https://msdn.microsoft.cohm/en-us/library/system.web.mvc.authorizeattribute%28v=vs.118%29.aspx
或者另一个好方法是使用处理授权的Base控制器类
public BaseController: Controller
{
protected string username ;
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
// Do authorization here
username = // code to get username
{
}