2014-06-28 2 views
1

J'ai un programme C# qui est connecté à une base de données et dans la base de données j'ai SalesPersonID colonne (avec un nombre pour un exemple 124547). J'ai plusieurs fenêtres pour les comptes d'utilisateurs. Est-il possible de connecter une fenêtre de connexion avec un programme C# afin qu'il "sache" quel SalesPersonID est utilisé pour le moment. Cela devrait fonctionner comme ceci: je suis connecté à mon compte Windows (John Black, nom d'utilisateur et mot de passe) et maintenant je travaille dans mon programme (je vends des trucs) .Quand je fais une vente le programme devrait automatiquement savoir quel utilisateur je suis (basé sur mes fenêtres de connexion) et il "sait" qui SalesPersonID j'ai dans ma base de données de sorte que la base de données avec SalesRecords est automatiquement mis à jour avec mon numéro SalesPersonID. J'espère que ce que j'essaie de faire est clair. Je n'ai aucune idée de comment commencer ou si c'est même possible. Je vous remercie.connecter Windows se connecter avec C# programme?

Répondre

2

Oui, cela est possible. Vous pouvez obtenir votre nom d'utilisateur d'ouverture de session Windows actuelle du système:

string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 

Notez que si vous êtes dans un domaine, cela pourrait être du domaine \ format nom d'utilisateur.

Ensuite, dans votre base de données, vous créez une table (ou utilisez votre table d'utilisateurs existante) pour stocker la connexion Windows pour chacun de ces utilisateurs. Quelque chose comme -

UserId  WindowsLoginName 
------------ ------------------ 
55   SALES\JohnBlack 

(en supposant que votre nom de connexion est « JohnBlack » et vous êtes dans un domaine appelé « ventes », cela est mis en correspondance avec la ligne de la table utilisateur où votre compte a la valeur Id de « 55 » - Je suppose que tout cela).

Dans votre programme tout ce que vous devez faire est de rechercher la valeur actuelle de « userName » (comme ci-dessus) dans la colonne « WindowsLoginName » de la table et utiliser l'identifiant associé :)

+0

Merci pour votre aide, mais Je ne sais pas exactement comment faire ça. Je dois utiliser la table d'utilisateur existante et là je devrais avoir le prénom et le nom séparés avec une clé primaire qui est le numéro de sécurité sociale. Mon ouverture de session Windows est PC2 \ John et il a été ajouté au serveur sql. Le problème est comment se connecter pour un exemple PC2 \ John avec la clé primaire de is dans la table où son nom est divisé en prénom et nom. Je ne sais pas comment mapper ceci – user3613744

+0

J'ai un utilisateur appelé PC2 \ John dans mon dossier de connexion dans le serveur sql (qui est connecté avec mon compte Windows). Je dois en quelque sorte le mapper à l'UserID dans ma table SalesStaff et être en mesure de retirer son ID de mon programme C#. Pour un exemple, j'ai un programme pour émettre une facture pour l'achat et il est connecté à la base de données. quand j'appuie sur le bouton "imprimer le projet de loi", il devrait imprimer la facture avec le numéro d'identification d'utilisateur, que je devrais obtenir du serveur. Donc, si John est connecté à Windows, son ID utilisateur doit être 14546, pour Jack est 345565, par exemple. – user3613744

+0

Je vois que cela a été marqué comme réponse, mais avez-vous obtenu ce travail? Faites-moi savoir si vous avez encore besoin d'aide. –