MVC处理一个CorpId的网站(MVC Handling a CorpId for the sit

2019-07-31 11:54发布

我不知道我该处理的正确方法,但因为我运行到的问题,我想我不是。

我必须加载登录屏幕时发出的公司标识。

是这样的:

public ActionResult LogOn(string id)
{
  var sb = new StringBuilder();
  sb.AppendLine(string.Format("CorpID: {0}", id));

  if(ViewBag.CorpID != null)
    sb.AppendLine(string.Format("ViewBag.CorpID: {0}", ViewBag.CorpID));

  Guid corpIdGuid;
  if (!Guid.TryParse(id, out corpIdGuid) && string.IsNullOrEmpty(ViewBag.CorpID))
    return null;

  // the id passed in will take presidence over the 
  // viewbag unless it is blank then we use viewbag
  // one way or the other viewbag.corpid should not
  // be blank
  if(!string.IsNullOrEmpty(id))
    ViewBag.CorpID = id;

  // Session["CorpId"] = id;
  //Not a junk guid.. continue.
  return View();
}

我想这能建立什么公司,我们将在本届会议期间的工作。

我遇到的问题是当Cookie超时发生,这是设置为10分钟,其引导他们回到这个登录,我没有corpid了。

我试过viewbag和它被重置。

我想一个cookie,但因为它到期,数据不再存在。

我尝试了配置文件管理器,但因为它们是记录它,这使我回什么。

如何保持这种CorpId当用户已超时并放回在登录屏幕上? 我需要此信息为每个屏幕我有也。

任何投入将不胜感激!

Answer 1:

您需要创建一个单独的cookie识别企业ID不与用户的会话过期。 Session["CorpId"]将与用户会话过期,将无法正常工作。

var corpCookie = new HttpCookie("CorpID", id);
corpCookie.Expires = DateTime.Now.AddDays(30.0);
HttpContext.Current.Response.Cookies.Set(corpCookie);

每次用户登录时,你可以更新过期,使其滑动过期。 要检索的cookie的值,使用以下命令:

var corpID = HttpContext.Current.Request.Cookies.Get("CorpID").Value;


文章来源: MVC Handling a CorpId for the site