2009-06-26 7 views
0

Je suis toujours en train de faire le module Connectez-vous ci-dessous:Comment rendre mon application intégrée?

  1. Créer une table avec nom d'utilisateur et mot de passe
  2. Connectez-vous en cochant la table utilisateur.

Alors, comment utiliser la connexion intégrée comme l'application comme Sql Server? Je ne veux pas dire en passant une chaîne de connexion, je veux dire qu'il va vérifier les informations d'identification de mon application sans mettre de nom d'utilisateur et mot de passe.

Merci

EDIT:

Je ne veux pas dire le serveur SQL intégré Connexion, je veux dire la connexion intégrée de ma demande, est-il possible?

Par exemple, mon application va lire le nom de l'AD et le comparer au nom d'utilisateur actuel, alors je n'ai pas besoin que l'utilisateur saisisse un mot de passe pour mon application. Je ne suis pas sûr de savoir comment faire cela et par où commencer, puisque si je recherche une connexion intégrée, 99,9% des résultats de Google me donneront la chaîne de connexion, ce que je ne recherche pas.

+0

Est-ce que cette application web est? – TheVillageIdiot

+0

Application Windows, pas Web – PlayKid

+0

L'application s'exécutera dans le contexte de l'utilisateur qui a démarré le processus. C'EST À DIRE. Si domain \ joe.blogs démarre le programme dans sa session de connexion, le programme utilisera ses informations d'identification. Cela fonctionne de cette façon, donc vous n'avez pas à vous soucier de l'authentification vous-même. –

Répondre

0

[Cette réponse suppose que vous êtes sur un domaine Active Directory]

Vous utilisez Windows Active Directory authentification? Si tel est le cas, vous pouvez utiliser l'option de sécurité intégrée dans la chaîne de connexion.

est ici une chaîne de connexion par exemple en utilisant la sécurité intégrée:

"Data Source=MyServer;Initial Catalog=db name;Integrated Security=True" 

Cela réduirait la complexité vous permettant d'oublier d'avoir à demander à l'utilisateur un nom d'utilisateur et mot de passe, car il va ramasser les fenêtres des informations d'identification ils se sont connectés au poste de travail avec.

Edit:

Si l'application est un site Web, vous devrez configurer le serveur SQL comme « de confiance pour la délégation » dans le répertoire actif (voir http://msdn.microsoft.com/en-us/library/aa905162(SQL.80).aspx). Cela permettra au serveur Web de déléguer les informations d'identification de connexion Windows de l'utilisateur au serveur SQL. Si vous ne le faites pas, la connexion SQL sera anonyme.

0

En supposant que votre application sera exécutée avec Active Directory sur le réseau local, je pense qu'il existe quelques options, selon la façon dont vous souhaitez implémenter l'autorisation.

Si vous voulez/besoin de faire l'autorisation avec des règles personnalisées/logique alors la première chose dont vous avez besoin est de déterminer qui a dirigé l'application:

  • Environment.UserName conjointement avec Environment.UserDomainName vous donnera suffisamment d'informations;
  • Alternativement (et plus sûr) que vous avez utiliser le code suivant:

    AppDomain.CurrentDomain.SetPrincipalPolicy(
        System.Security.Principal.PrincipalPolicy.WindowsPrincipal); 
    var identity = Thread.CurrentPrincipal.Identity; 
    

De l'identity vous pouvez extraire Security Identifier qui est conçu pour être unique au monde. (Mais pas si joli que la paire domain \ nom d'utilisateur.)

Après avoir obtenu le nom de l'utilisateur actuel, vous pouvez appliquer les règles d'autorisation que vous voulez.

Questions connexes