簡體   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