在Asp.Net Mvc 4中使用Cookie

埃尔文·玛玛多夫(Elvin Mammadov)

我在Asp.Net MVC4中有Web应用程序,并且我想使用cookie来进行用户的登录和注销。所以我的动作如下:

登录动作

    [HttpPost]
    public ActionResult Login(string username, string pass)
    {
        if (ModelState.IsValid)
        {
            var newUser = _userRepository.GetUserByNameAndPassword(username, pass);
            if (newUser != null)
            {
                var json = JsonConvert.SerializeObject(newUser);

                var userCookie = new HttpCookie("user", json);
                userCookie.Expires.AddDays(365);
                HttpContext.Response.Cookies.Add(userCookie);

                return RedirectToActionPermanent("Index");
            }
        }
        return View("UserLog");
    }

注销操作

    public ActionResult UserOut()
    {
        if (Request.Cookies["user"] != null)
        {
            var user = new HttpCookie("user")
                {
                    Expires = DateTime.Now.AddDays(-1),
                    Value = null
                };
            Response.Cookies.Add(user);
        }
        return RedirectToActionPermanent("UserLog");
    }

我在_Loyout中使用此cookie,如下所示:

@using EShop.Core
@using Newtonsoft.Json
@{
   var userInCookie = Request.Cookies["user"];
}
...
  @if (userInCookie != null && userInCookie.Value)
  {
        <li><a href="#">Salam</a></li>
        <li><a href="@Url.Action("UserOut", "Home")">Cıxış</a></li>
  }
  else
  {
        <li><a href="@Url.Action("UserLog", "Home")">Giriş</a></li>
  }

但是,当我单击* UserOut *操作时,此操作是第一次发生,但是随后不起作用。我将断点用于查看进程,但它得到的UserLog操作不是UserOut我的问题是,我在哪里使用错误的Cookie方式?这种情况下,Asp.Net Mvc4中使用cookie的最佳方法是什么

病毒

尝试使用Response.SetCookie(),因为Response.Cookies.Add()可能会导致添加多个cookie,而SetCookie会更新现有的cookie。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在MVC 4中使用ASP.Net身份

来自分类Dev

在ASP.NET MVC 4中使用共享视图

来自分类Dev

ASP.Net MVC 5中的Cookie

来自分类Dev

mvc4future无法在ASP.NET MVC 5中使用

来自分类Dev

无法在ASP.NET MVC 5中使用mvc4future

来自分类Dev

在ASP.Net MVC中使用异步

来自分类Dev

在 ASP.Net-MVC 中使用异步

来自分类Dev

在Asp.net MVC4中使用NHibernate更新对象

来自分类Dev

在Asp.net MVC 4中使用OutputCacheAttribute的条件缓存

来自分类Dev

在ASP.NET MVC 4应用程序中的身份验证中使用会话变量

来自分类Dev

如何在ASP.NET MVC 4中使用Ninject从Web.config绑定设置?

来自分类Dev

在Asp.Net MVC 4中使用AJAX提交表单

来自分类Dev

如何在ASP.NET MVC 4中使用免费CSS模板?

来自分类Dev

在ASP.NET MVC4中使用jquery,AJAX插入数据?

来自分类Dev

在asp.net MVC4中使用父视图删除部分视图信息

来自分类Dev

在Asp.net MVC4中使用NHibernate更新对象

来自分类Dev

在ASP.NET MVC 4中使用CSS类的jQuery多重选择控件

来自分类Dev

在ASP.NET MVC 4应用程序中的身份验证中使用会话变量

来自分类Dev

是否可以在asp.net MVC4中使用foreach循环对绑定进行建模?

来自分类Dev

在ASP.NET MVC 4中使用Unity-依赖项注入错误

来自分类Dev

在ASP.NET MVC 5中使用mvcSitemap

来自分类Dev

在ASP.NET MVC 5中使用DropDownListFor的NullReferenceException

来自分类Dev

在ASP.Net MVC 6中使用库

来自分类Dev

在ASP.NET MVC 5中使用DropDownListFor的NullReferenceException

来自分类Dev

在ASP.NET MVC 5中使用@using namspce

来自分类Dev

ASP.NET MVC 4中的ViewComponent

来自分类Dev

ASP.NET MVC 4中的Treeview

来自分类Dev

ASP.NET MVC 4中的RegisterRoutes

来自分类Dev

jSignature可在ASP.NET Web窗体中使用,但不能在MVC4中使用-为什么?

Related 相关文章

热门标签

归档