2013-04-04 8 views
2

Je suis en train de développer une application qui permet la gestion des utilisateurs via WinForms et une base de données SQL Server CE. J'ai créé un moyen pour les utilisateurs de se connecter via un ensemble de connexion dans une base de données de table avec un nom d'utilisateur et un mot de passe. Maintenant, j'essaie de trouver la meilleure façon de limiter l'accès aux fonctionnalités spécifiques de l'application. Mon but est de trier l'application en modules (Clients, Employés, Facturation, etc.) et de donner à l'utilisateur des droits d'écriture sur l'ensemble du module. Plus tard, je pourrais essayer d'implémenter la sécurité sur une base par forme.Application SQL Server CE avec autorisations utilisateur

Des idées sur la façon d'accomplir cela?

Répondre

1

Vous devez d'abord créer une table Roles sur votre SQL CE.

Votre UserTable peut donc avoir un RoleID FK ajouté pour chaque utilisateur. Supposons que vous ayez Admin et un rôle d'utilisateur.

Dans chacun de vos formulaires, ajoutez Gestionnaire de sécurité Méthodes/Classe qui vérifie le rôle de l'utilisateur qui accède à votre application.

Créez public string Role; et puclic string UserName dans chacun de votre formulaire, vous pouvez transmettre ses valeurs au reste du formulaire.

Exemple sur le formulaire client charge, vous pouvez ajouter

if(Role=="Admin") 
{ 
    //visible all controls stuff 
} 
else 
{ 
    //User 
    //set controls to read only stuff 
} 

Sur votre Formulaire de connexion de connexion/Ok Cliquez événement

Vous pouvez faire

//your stuff on getting the role of the user 
//validation stuff 
string role = // get user role; 
if (role!=null) 
{ 
    //if you have MDI Parent 
    var mdi = new MDIParent 
    { 
     UserName = txtUserName.Text, 
     Role = role, 
    }; 
    mdi.Show();  
    this.Hide(); 
} 
else 
{ 
    //Error user not valid!! 
} 

Cordialement

+0

Merci, je Je vais essayer! –

Questions connexes