你好。我有一个登录网页和一个欢迎网页。我将用户名和密码保存在数据库中。登录后我重定向到欢迎页面。假设我以 Dave 身份登录。我希望欢迎页面显示 Welcome Dave。我该怎么做呢?
我尝试了很多事情都没有成功——我在欢迎页面上创建了一个标签,并尝试从登录页面调用它,但这是不允许的。有没有办法可以连接来自不同网页的标签?工具箱中是否有可以将页面链接在一起的工具?
或者我应该专注于对数据库做些什么?
有任何想法吗?
您需要为此创建Session
。
Session["Name"]=txtLoginName.Text;
通过这种方式,您可以为会话创建和分配价值。
Welcome <%=Session["Name"]%>
通过这种方式,您可以打印其值。
ASP.NET 会话在此处进行了解释。
您可以使用以下命令访问当前用户名:
HttpContext.Current.User.Identity.Name
因此,您可以将标签文本设置为此。例如:
lblUsername.Text = HttpContext.Current.User.Identity.Name
或者您可以将其存储在 Session 变量中,如下所示:
Session["Username"] = HttpContext.Current.User.Identity.Name
您可以在会话中获取用户名文本框的值,例如:
Session["Username"] = IdOfYourTextBox.Text;
并在欢迎页面获取此会话。
在您的页面中,添加如下内容:
<table>
<tr>
<td>
<asp:Label ID="lblWellcome" CssClass="lblSimple" runat="server" Text="Welcame"> </asp:Label>
</td>
<td>
<asp:Label ID="lblUserData" CssClass="lblSimple" runat="server" Text=""></asp:Label>
</td>
</table>
当用户登录时,将全名存储在 Session 变量中,并通过 Session 变量设置标签值
登录后重定向到您的欢迎页面。在该页面上说出您的标签(如果名为 lblUserName),然后执行以下操作:
lblUserName.Text = HttpContext.Current.User.Identity.Name;
或者,您可以按如下方式使用 Session:
如果用户已通过身份验证,则在登录页面上设置
Session["UserName"] = YourUserNameTextBox.Text;
然后在欢迎页面上执行此操作
lblUserName.Text = Session["UserName"].toString();