Bonjour,
Toujours dans la continuité de ma gestion de droit dans le xaml ( http://www.developpez.net/forums/sho...d.php?t=585006 ) j'ai le droit a des "phénomènes" étonnants.
Le contexte :
J'ai une fenêtre de login et une fenêtre principal, j'affiche d'abords la fenêtre de login ou l'utilisateur saisi son id/pass et reçoit par un service des données qui vont remplir le Thread.CurrentPrincipal.
Ensuite je ferme cette fenêtre et ouvre la fenêtre principal je la met en MainWindow.
La mon système de rôle (du topic précédant) fonctionne et affiche les menus correspondant aux rôles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 void service_LoginCompleted(object sender, LoginCompletedEventArgs e) { ServiceClient.GetInstance().Service.LoginCompleted -= service_LoginCompleted; try { Thread.CurrentPrincipal = new GenericPrincipal(e.Result.GenericIdentity, e.Result.Roles.ToArray()); Window main = new Main(); this.Close(); main.Show(); Application.Current.MainWindow = main; } catch (TargetInvocationException ex) { if (ex.InnerException is MessageSecurityException) txtError.Visibility = Visibility.Visible; } }
Lorsque je clic sur un des menu j'instancie un Usercontrol qui va se mettre au centre de la fenêtre principal.
J'utilise encore mon système de role dans ces usercontrole mais le problème est que lorsque je suis dans ces usercontroles, les boutons qui devraient apparaitre ne sont pas la en déboguant step by step je remarque que mon Thread.CurrentPrincipal ne contient que de la donnée vide comme si je ne l'avais jamais rempli !
Est ce que WPF fait quelque chose lors des chargement des controle ? est ce que j'ai changé de thread ?
Après je pourrais mettre mon GenericPrincipal dans un singleton mais bon cela ne serai pas très conforme aux normes .net ...
Bref si quelqu'un a une idée pour résoudre ce problème
merci![]()
Partager