Asp.net mvc Unity Framework会从MVC 5中的上下文中删除cookie吗

Asp.net mvc Unity Framework会从MVC 5中的上下文中删除cookie吗,asp.net-mvc,cookies,asp.net-mvc-5,Asp.net Mvc,Cookies,Asp.net Mvc 5,我正在创建一个应用程序,该应用程序具有用于依赖项注入的unity框架,因此我的帐户控制器遵循并包含登录操作 public class AccountController : Controller { private readonly IUserService userService; public AccountController(IUserService userService) { this.userService = userService;

我正在创建一个应用程序,该应用程序具有用于依赖项注入的unity框架,因此我的帐户控制器遵循并包含登录操作

public class AccountController : Controller
{
    private readonly IUserService userService;

    public AccountController(IUserService userService)
    {
        this.userService = userService;
    }

    public ActionResult Login()
    {
        return View();
    }

    [HttpPost]
    [AllowAnonymous]
    //[ValidateAntiForgeryToken]
    public ActionResult Login(LoginViewModel model)
    {
        if (ModelState.IsValid)
        {
            string message = "";
            var user = userService.UserExists(model, out message);

            if (user != null)
            {
                CustomPrincipalSerializeModel serializeModel = new CustomPrincipalSerializeModel();

                serializeModel.UserId = Convert.ToInt32(user.Id);
                serializeModel.EmailId = user.EmailId;
                serializeModel.FirstName = user.FirstName;
                serializeModel.LastName = user.LastName;
                serializeModel.role = user.Role;

                string userData = JsonConvert.SerializeObject(serializeModel,Formatting.Indented,
                    new JsonSerializerSettings
                    {
                        PreserveReferencesHandling = PreserveReferencesHandling.Objects
                    });
                FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
                         1,
                        user.EmailId,
                         DateTime.Now,
                         model.RememberMe ? DateTime.Now.AddDays(3) : DateTime.Now.AddHours(3),
                         model.RememberMe ? true : false,
                         userData);

                string encTicket = FormsAuthentication.Encrypt(authTicket);
                HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
                faCookie.Expires = model.RememberMe ? DateTime.Now.AddDays(3) : DateTime.Now.AddHours(3);                    
                Response.Cookies.Add(faCookie);                    
                return RedirectToAction("Index", "Home");                    
            }

        }
        else
        {
            ModelState.AddModelError("", "Incorrect username and/or password");
        }

        return View(model);
    }
}
.在登录操作中,我将执行以下操作 1) 检查用户是否存在(如果存在),然后添加FormsAuthenticationCookie。 但当我使用IUserService(DI接口)时,当重定向到另一个操作时,cookie被删除。 2) 但若我从控制器中删除DI,那个么Cookie将被持久化

怎么了?我从几天内就找到了答案。 请给我解决方案,我想要DI和Cookie


提前谢谢

您可能想检查IUserService是如何注册的?i、 每一个请求?每个线程?每个容器等。尝试更改设置并从那里开始。还有,cookie持久化的代码是什么?如果我删除“var user=userService.UserExists(model,out message);”这个语句,那么cookie就会持久化,即使我没有从公共AccountController(IUserService userService)的控制器构造函数中删除IUserService,也会持久化{this.userService=userService;}