我需要从我所有的asp.net mvc应用程序中访问UserId,以便用它来隐藏/显示一些元素:
UserId用户表中的主键(在SQL Server中)。
在普通的asp.net中,我使用了一个BasePage:Page并添加了:
public long FinKaynUserId
{
//long FinKaynUserId = 0;
get
{
if (HttpContext.Current.Session["FinKaynUserId"] != null && Convert.ToInt64(HttpContext.Current.Session["FinKaynUserId"]) != 0)
return Convert.ToInt64(HttpContext.Current.Session["FinKaynUserId"]);
else
{
HttpCookie myCookie = HttpContext.Current.Request.Cookies["FinKaynUserId"];
if (myCookie != null)
{
HttpContext.Current.Session["FinKaynUserId"] = Convert.ToInt64(myCookie.Value);
// Session["User"] = (new UserManager()).GetUser(Convert.ToInt64(Session["UserId"]));
return Convert.ToInt64(HttpContext.Current.Session["FinKaynUserId"]);
}
else
return 0;
}
}
set
{
HttpCookie cookie = new HttpCookie("FinKaynUserId");
cookie.Value = value.ToString();
cookie.Secure = false;
cookie.Expires = DateTime.Now.AddDays(3);
HttpContext.Current.Request.Cookies.Add(cookie);
HttpContext.Current.Session["FinKaynUserId"] = value;
}
}
我如何在asp.net mvc中做同样的事情。
答案 0 :(得分:1)
HttpContext.Current.Session [“Session_User”] = value;
答案 1 :(得分:1)
如果变量用法是在会话级别,则使用:Session["Variable"]="value";
否则,如果在整个应用程序中使用,请使用:System.Web.HttpContext.Current.Application["Variable"]="value";
答案 2 :(得分:-2)
一种选择是将您的变量存储在应用程序上下文中:
Application["FinKaynUserId"] = value;
然后你可以在其他代码部分得到它:
if (Application["FinKaynUserId"] != null)
{
long FinKaynUserId = (long)Application["FinKaynUserId"];
}