2014-07-17 1 views
0

Nous avons une application Web qui copie les fichiers sur un serveur distant de notre domaine (OurDomain). Le problème suivant se produit avec les utilisateurs qui se connectent à leur ordinateur portable avec un autre domaine, puis se connecter à l'application Web avec OurDomain. Les utilisateurs qui se connectent à l'application pour ordinateur portable et Web avec OurDomain \ User n'ont pas ce problème.Utilisation de l'emprunt d'identité ASP.Net avec l'authentification Windows

Nous avons deux formulaires Web:

Le 1er formulaire en ligne ID récupère de l'utilisateur à l'aide System.Security.Principal.WindowsIdentity.GetCurrent() et envoie ensuite un email avec ce code d'utilisateur. Ce code récupère l'ID de l'utilisateur uniquement si Windows Authentication est défini sur Enabled et ASP.Net Impersonation également sur Enabled. Si ASP.Net Impersonation est défini sur Disabled, l'utilisateur sera Network Service. Donc, je définis à la fois Enabled et tout ici fonctionne très bien.

Le 2ème formulaire Web copie certains fichiers sur le serveur distant, également sous le domaine OurDomain. Avec Windows Authentication réglé sur Enabled et ASP.Net Impersonation sur Disabled, alors Network Service est utilisé pour copier les fichiers sur le serveur distant et sont copiés correctement. D'autre part, Si ASP.Net Impersonation est défini sur Enabled, il semble contourner Network Service et même OurDomain \ User et tente de copier avec, apparemment, les informations d'identification utilisées pour se connecter à l'ordinateur portable (un autre domaine). Les fichiers ne pas copier et je reçois l'erreur L'accès au chemin est refusé

La seule solution que j'ai trouvé est d'ajouter ourdomain \ User dans le dossier, et il est vraiment pas une grosse affaire, mais Je voulais voir pourquoi cela se passait.

Merci.

Répondre

0

Je crois que OurDomain \ User est l'utilisateur qui est connecté au système à partir du navigateur Web. Ce n'est pas une bonne pratique de sécurité pour donner accès au dossier du serveur à ce groupe d'utilisateurs. Si vous donnez accès à ces utilisateurs, ils peuvent même parcourir le dossier distant sans votre application Web. NetworkService est un utilisateur qui joue un rôle dans le système sur lequel il est créé.

Mieux vaut créer un utilisateur en tant qu'utilisateur asp.net d'application asp.net dans OruDomain \ webappuser, c'est-à-dire l'utilisateur qui exécute le processus de travail w3wp. Laissez le mot de passe avec l'admin.Give OurDomain \ webappuser l'autorisation sur le dossier distant. Exécutez le formulaire Web sans usurpation d'identité.

maintenant les fichiers qui sont reçus par boîte de dialogue de téléchargement de fichier dans WebForm2 peut être copié dans le dossier en toute sécurité comme la course d'application asp.net dans le contexte de ourdomain \ webappuser

+0

Je ne peux pas créer/modifier ou modifie en rien utilisateurs dans OurDomain. – vmgmail

+0

Si vous ne disposez pas d'un autre utilisateur du pool d'applications que le service réseau, vous pouvez avoir besoin d'emprunter l'identité. c'est-à-dire que l'application asp.net s'exécutera comme si l'utilisateur connecté au navigateur exécutait un programme sur le serveur Web. Dans ce cas, si l'utilisateur qui s'est connecté au navigateur dispose d'une autorisation sur le dossier distant, la copie du fichier fonctionnera. –

Questions connexes