繁体   English   中英

使用asp.net将用户名存储在sesson数据中

[英]Storing username in sesson data with asp.net

在我的asp.net网站上,启用了会员功能,要求用户登录。 我想将用户名存储在会话数据中以进行查询,一旦他们登录就将使用该用户名。

在我的登录页面上,我有以下代码来存储会话数据,但是它不起作用:

Session["UserName"] = System.Web.HttpContext.Current.User.Identity.Name;

该查询将不会加载任何结果,因为控制参数(session [username])返回空。

谁能说出其无法正常工作的原因是什么?

通常,只有下一页加载后,用户信息才可用。

登录后,您可能必须重定向到“跃点”页面,然后重定向回用户请求的页面。

这是使用MVC的方法

登录:

public ActionResult Login(LoginModel model, string returnUrl)
{
    if (ModelState.IsValid)
    {
        return Hop(returnUrl);
    }
}

跳页:到此,用户信息才真正可用。

public ActionResult Hop(string returnUrl)
{
    Session["UserName"] = User.Identity.Name;
    return Redirect(returnUrl);
}

如果使用成员资格提供程序,则应使用其类来获取用户信息。 尝试使用

Session["UserName"] = Membership.GetUser().UserName

您是否在页面上使用登录控件? 如果是这样,您可以直接从控件中获取用户名,如下所示:(假设Login控件名为loginControl)

Session["UserName"] = loginControl.UserName;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM