Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在水平菜单中显示当前用户的名称_Asp.net_Membership - Fatal编程技术网

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不会给我名称。