2009-09-10 17 views
4

Nous avons une application WinForms qui utilise SQL Server pour stocker ses données. Pour authentifier les utilisateurs de l'application, nous utilisons SQL Server pour effectuer l'authentification. L'utilisateur doit avoir un nom d'utilisateur/mot de passe qui existe sur le serveur de base de données pour pouvoir se connecter.Comment implémenter SSO (Single Sign On) pour une application WinForms et SQL Server

Jusqu'ici tout va bien.

Désormais, un de nos clients souhaite que nous mettions en œuvre l'authentification unique. Ils veulent être en mesure de démarrer notre application sans entrer de nom d'utilisateur/mot de passe, ils veulent utiliser Windows pour authentifier l'utilisateur.

Avez-vous des conseils sur la façon dont nous pourrions implémenter cela?

Répondre

2

Voir cet article WinForms App Single Sign On in 2 Lines of Code.

De nombreux développeurs ne sont pas conscients de deux objets d'information riches à leur disposition pour la validation basée sur les rôles et qui peuvent également être mis à profit pour vérifier l'accès authentifié, essentiellement authentification unique (SSO), à leur application parce que l'utilisateur a déjà connecté sur le bureau. Ce sont les objets WindowPrincipal et WindowsIdentity. Le but de ce screencast est de démystifier la manière de tirer parti de l'information riche que ces objets fournissent - en commençant par seulement 2 lignes de code.

1

Je dirais d'utiliser le répertoire actif et SSPI (aka connexions de confiance). Cela ferait normalement usage de l'authentification kerberos. Si vous avez une notion d'utilisateur dans votre base de données, par exemple une table Users, vous pouvez ajouter une autre colonne ou avoir une table distincte pour stocker le nom de connexion du domaine de cet utilisateur (par exemple, [email protected]). Vous voyez plus souvent somedomain \ johnsmith, mais la méthode @ est la plus récente, la représentation préférée.

Questions connexes