MVC Lidando com um CorpId pelo site

Não tenho certeza se estou lidando com isso da maneira certa, mas como estou tendo problemas, presumo que não sou.

Eu tenho que ter um ID de corporação enviado ao carregar a tela de login.

Se parece com isso:

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();
}

Eu preciso disso para estabelecer com qual empresa estaremos trabalhando durante esta sessão.

O problema que estou encontrando é quando ocorre o tempo limite do cookie, que é definido para 10 minutos, ele os direciona de volta para esse login e eu não tenho mais nenhum corpid.

Eu tentei oviewbag e está sendo redefinido.

Eu tentei um cookie, mas desde que expira, os dados não estão mais lá.

Eu tentei um Profile Manager, mas desde que eles estão logados, isso me coloca de volta em nada.

Como faço para manter issoCorpId quando o usuário expirou e colocou de volta na tela de login? Eu preciso desta informação para cada tela que eu tenho também.

Qualquer entrada seria muito apreciada!

questionAnswers(1)

yourAnswerToTheQuestion