将会话从配置文件传递到asp.net中的新页面

时间:2015-01-24 11:07:22

标签: c# asp.net

我知道如何将会话从登录页面传递到用户的个人资料,但是如何将相同的会话从个人资料传递到新页面。

2 个答案:

答案 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
}

我希望我回答你的问题。