首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET MVC实现

ASP.NET MVC实现
EN

Stack Overflow用户
提问于 2011-07-23 08:10:28
回答 3查看 74.3K关注 0票数 19

我尝试在我的应用程序中实现一个基本的cookie助手。主要是我每次都会检查基本控制器是否设置了cookie。如果是cookie

代码语言:javascript
复制
public class MyCookie
{

    public static string CookieName {get;set;}
    public virtual User User { get; set; }
    public virtual Application App { get; set; }


    public MyCookie(Application app)
    {
        CookieName = "MyCookie" + app;
        App = app;
    }

    public void SetCookie(User user)
    {
        HttpCookie myCookie = HttpContext.Current.Request.Cookies[CookieName] ?? new HttpCookie(CookieName);
        myCookie.Values["UserId"] = user.UserId.ToString();
        myCookie.Values["LastVisit"] = DateTime.Now.ToString();
        myCookie.Expires = DateTime.Now.AddDays(365);
        HttpContext.Current.Response.Cookies.Add(myCookie);
    }

    public HttpCookie GetCookie()
    {
        HttpCookie myCookie = HttpContext.Current.Request.Cookies[CookieName];
        if(myCookie != null)
        {
            int userId = Convert.ToInt32(myCookie.Values["UserId"]);
            User user = session.Get<User>(userId);
            return user;
        }
        return null;
    }
}

如果会话为空,我会尝试从cookie中获取,或者如果会话初始化,我会设置cookie,但在浏览器中看不到我的cookie。怎么啦?

我总是使用userId=0启动会话,以获取cookie并从cookie中设置会话:

代码语言:javascript
复制
if (userId == 0)
{
    MyCookie myCookie = new MyCookie(_app);
    User user = cookieHelper.GetCookie();
    if (user != null)
        SessionHelper.SetSession(user);
}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6797350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档