2012-05-03 5 views
0

Я использую Asp.Net встроенного membership framework, у меня есть требование, где мне нужно, чтобы отобразить имя из logged-in пользователя, мои aspnet_users таблицы хранит имя пользователя что-то вроде этого abc001, который на самом деле пользовательский код пользователя, его имя пользователя хранится в другой таблице, которая связана с таблицей aspnet_users с foreign key constraint. Так как я могу отобразить имя пользователя из этой таблицы в моем навигационном меню, которое будет плавать вправо . Как и в случае Facebook, он отображает имя пользователя logged-in в заголовке. Edit:Отображает имя текущего пользователя в горизонтальном меню

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; 
     } 

Благодаря

ответ

1

Вы можете использовать,

Membership.GetUser().UserName 

... чтобы получить в настоящее время вошли в систему пользователя. Если пользователь не вошел в систему, вы получите null значение, возвращаемое GetUser(), поэтому код соответственно.

+0

но имя фактически хранится в другой таблице, которая связана со встроенной таблицей, поэтому я думаю, что Memberhip.GetUser(). UserName не даст мне имя. –

0

Попробуйте User.Identity.Name

Подробнее о HttpContext.User Property

Если вам нужно, чтобы получить различную информацию из другой таблицы, которую вы можете получить, что username и сделать что-то вроде этого

MembershipUser userInfo = Membership.GetUser("myUserName");  
Guid guid = new Guid(userInfo.ProviderUserKey.ToString()); 

ProviderUserKey является уникальным для каждого пользователя, и я предполагаю, что вы используете это как внешний ключ. Поскольку у вас есть ProviderUserKey, вы можете получить необходимые данные от ваш другой стол

0

User.Identity.Name можно использовать для доступа к имени пользователя. Посмотрите на этот учебник, поскольку он также объясняет, как вы можете получить информацию о членстве пользователя. http://mvctutorialsandguides.blogspot.co.nz/2013/03/mvc-c-sql-membership-provider-how-to.html Надеюсь, это поможет.

Смежные вопросы