2009-03-04 9 views
0

J'ai une LoginWindow avec nom d'utilisateur et mot de passe pour accéder au logiciel après que l'utilisateur authentifié je veux montrer dans la fenêtre suivante (la mainWindow du logiciel) le nom de l'utilisateur authentifié dans un TextBlock ... je montre un extrait de code de mon LoginWindow: dans le MainWindow je vais montrer le nom d'utilisateur « Marc » dans un TextBlock et je ne sais pas que je faisLiaison TextBlock Linq ToSql & WPF

public partial class Window1 : Window 
{ 
    public Window1() 
    { 
     InitializeComponent(); 
    } 

    public bool ValidateApplicationUser(string userName, string password) 
    { 
     { 
      var AuthContext = new DataClasses1DataContext(); 
      var query = from c in AuthContext.Users 
         where (c.Username == userName.ToLower() && c.Password == password.ToLower()) 
         select c; 

      if(query.Count() != 0) 
      { 
       return true; 
      } 

      return false; 
     } 
    } 

    private void mahhh(object sender, RoutedEventArgs e) 
    { 
     bool authenticated = true; 
     { 
      if (usernameTextBox.Text !="" && passwordTextBox.Text != "") 
      { 
       authenticated = ValidateApplicationUser(usernameTextBox.Text , passwordTextBox.Text); 
      } 
     } 
     if (!authenticated) 
     { 
      MessageBox.Show("Invalid login. Try again."); 
     } 
     else 
     { 
      MessageBox.Show("Congradulations! You're a valid user!"); 
      MainWindow c = new MainWindow(); 
      c.ShowDialog(); 
     } 
    } 
} 

Si j'authentifiez avec le nom d'utilisateur « Marc » il? Comment je peux le faire?

+0

Vous pouvez vouloir clarifier votre question. Je ne suis pas sûr où le nom d'utilisateur est stocké ou où vous voulez l'afficher. –

Répondre

0

simplement, passer le UserName au constructeur de la fenêtre principale comme celui-ci

MainWindow c = New MainWindow(usernameTextBox.Text); 

Et dans le constructeur de la fenêtre principale recevoir la valeur dans la variable et faire tout ce que vous voulez avec, comme celui-ci

private String _userName; 

public MainWindow(string userName) 
{ 
    _userName = userName 
} 
1

je pense que vous avez eu une erreur dans le code an (il permettra champ vide de se connecter), il doit être comme:

bool authenticated = true; 
    { 
     if (usernameTextBox.Text !="" && passwordTextBox.Text != "") 
     { 
      authenticated = ValidateApplicationUser(usernameTextBox.Text , passwordTextBox.Text); 
     } 


    } 
    if (!authenticated || usernameTextBox.Text == "" || passwordTextBox.Text == "") 
    { 
     MessageBox.Show("Invalid login. Try again."); 
    } 
    else 
    { 
     MessageBox.Show("Congradulations! You're a valid user!"); 
     MainWindow c = new MainWindow(); 
     c.ShowDialog(); 

    } 
0

ajouter une variable publique/propriété à votre classe MainWindow

public string Username { get; set; } 

maintenant vous pouvez définir la propriété

MessageBox.Show("Congradulations! You're a valid user!"); 
MainWindow c = new MainWindow(); 
c.Username = usernameTextBox.Text; 
c.ShowDialog(); 

et de l'utiliser dans votre MainWindow

MainWindow_Loaded(..) {  
    MessageBox.Show("You are " + Username); 
} 
Questions connexes