我知道如何将会话从登录页面传递到用户的个人资料,但是如何将相同的会话从个人资料传递到新页面。
答案 0 :(得分:0)
默认情况下,会话变量存储在Web服务器的内存中。您可以在创建后从任何页面接收会话值。 例如。从登录页面重定向到任何页面,代码如下:
protected void cmdRedirect_Click(object sender, EventArgs e)
{
Session["UserName"] = txtUserName.Text;
Response.Redirect("Default.aspx");
}
从Default.aspx读取会话值:
string LoginUser ="";
if(Session["UserName"]!=null)
LoginUser = Session["UserName"].ToString();
此外,您可以使用Membership类从成员资格中获取变量
Session["MySessionDataVariable"] = Membership.GetUser().UserName
答案 1 :(得分:0)
我认为你错过了会话点。 会话存在于应用程序的服务器端。 您可以在任何控制器的操作中调用您的会话,就像您所说的那样。用户的个人资料。
public ActionResult YourNewAction(){
var sessionModel = (CustomClass)HttpContext.Current.Session["Key"];
//...
}
如果您想获得用户凭据,那么活动就更容易了。你可以调用:
var identity = HttpContext.Current.User;
如果您正在存储,例如。会话中的CustomClass,上面的代码很难看。在这种情况下,您可以创建自定义活页夹,请阅读:ASP-NET-MVC-Custom-Model-Binder 然后:
public ActionResult YourNewAction(CustomClass sessionClass){
//sessionClass will be automapped
}
我希望我回答你的问题。