Asp.net 在水平菜单中显示当前用户的名称
我使用的是Asp.net 在水平菜单中显示当前用户的名称,asp.net,membership,Asp.net,Membership,我使用的是Asp.Net内置的会员框架,我需要显示登录的用户的名称,我的aspnet\u用户表存储的用户名类似于abc001,实际上是用户的用户代码,它的用户名存储在另一个表中,该表链接到带有外键约束的aspnet_users表。因此,如何在我的导航菜单中显示该表中的用户名,该菜单将向右浮动。就像Facebook一样,它在标题中显示已登录的用户名。 编辑: protected void cmdLogin_Click(object sender, EventArgs e) {
Asp.Net
内置的会员框架
,我需要显示登录的用户的名称,我的aspnet\u用户
表存储的用户名类似于abc001
,实际上是用户的用户代码,它的用户名存储在另一个表中,该表链接到带有外键约束的aspnet_users
表。因此,如何在我的导航菜单中显示该表中的用户名,该菜单将向右浮动。就像Facebook
一样,它在标题中显示已登录的
用户名。
编辑:
protected void cmdLogin_Click(object sender, EventArgs e)
{
if (Membership.ValidateUser(txtUsername.Text, txtPassword.Text))
{
HttpCookie authCookie = FormsAuthentication.GetAuthCookie(txtUsername.Text, false);
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(authCookie.Value);
FormsAuthenticationTicket newTicket = new FormsAuthenticationTicket(ticket.Version, ticket.Name, ticket.IssueDate, ticket.Expiration, ticket.IsPersistent, "");
authCookie.Value = FormsAuthentication.Encrypt(newTicket);
Response.Cookies.Add(authCookie);
GetUserName();
string redirUrl = FormsAuthentication.GetRedirectUrl(txtUsername.Text, false);
Response.Redirect(redirUrl);
}
}
public void GetUserName()
{
DataClasses1DataContext dt = new DataClasses1DataContext();
var name =( from nm in dt.Users_AdditionalInfos
where nm.UserCode== txtUsername.Text.Trim()
select nm).Single();
Global.UserName=name.FirstName +" "+ name.LastName;
}
谢谢您可以使用
Membership.GetUser().UserName
…获取当前登录的用户。如果用户未登录,您将获得由GetUser()
返回的空值,因此请相应地编码。尝试user.Identity.Name
了解更多关于
如果您需要从另一个表中获取不同的信息,您可以获取用户名
,并执行类似操作
MembershipUser userInfo = Membership.GetUser("myUserName");
Guid guid = new Guid(userInfo.ProviderUserKey.ToString());
ProviderUserKey
对于每个用户都是唯一的,我想您可以使用它作为外键。因为您有ProviderUserKey
,您可以从其他表中获得必要的详细信息user.Identity.Name
可用于访问用户的用户名。看看本教程,它进一步解释了如何获取用户的成员信息。希望这会有所帮助。但是名称实际上存储在另一个表中,该表链接到内置表,因此我认为Membership.GetUser().UserName不会给我名称。