【发布时间】:2016-03-16 20:23:07
【问题描述】:
我已经制作了一个单点登录系统,并且正在制作一个用于处理 cookie 的类库。 但我无法将服务器(ASP.NET MVC 控制器)实例放入类库中。 请在附件中找到我的 .cs 文件,其中我有可以处理我的应用程序中所有 cookie 的方法。 我应该将 HTTPContext 对象从我的 Web 应用程序传递到类库(到方法中)还是 Response 对象? 我都试过了,但都是徒劳的!
public void DoLogin(string username, bool autoSignIn)
{
HttpContext.Current.Response.Cookies["nowenableLogin"]["username"] = username;
HttpContext.Current.Response.Cookies["nowenableLogin"]["autoSignIn"] = autoSignIn.ToString();
HttpContext.Current.Response.Cookies["nowenableLogin"]["lastVisit"] = DateTime.Now.ToString();
HttpContext.Current.Response.Cookies["nowenableLogin"]["status"] = true.ToString();
HttpContext.Current.Response.Cookies["nowenableLogin"].Expires = autoSignIn ? DateTime.Now.AddDays(7) : DateTime.Now.AddDays(1);
}
【问题讨论】:
-
你不能这样做,除非你将控制器中的
HttpContext注入到类中。 -
有没有办法将 HttpContext 注入到类中?
-
您可以只添加一个参数
public void DoLogin(string username, bool autoSignIn, HttpContext context),但我怀疑您最好将此方法移动到BaseController : Controller类(可以访问HttpContext)并拥有所有控制器需要访问它的它继承自BaseController -
感谢您的建议......
标签: c# asp.net asp.net-mvc asp.net-mvc-4 cookies