2008-12-08 5 views
1

J'ai implémenté le traçage basé sur System.Diagnostics. J'utilise également un System.Diagnostics.TextWriterTraceListener, et j'ai connecté toute la trace jusqu'à une application Web MOSS 2007. La trace, pour quelque raison, tente de (a) créer le fichier journal et/ou (b) d'écrire dans le fichier journal en utilisant l'utilisateur qui parcourt actuellement le site SharePoint, est-il possible de configurer la journalisation pour utiliser un compte d'utilisateur particulier à la place?System.Diagnostics: Comment se connecter en utilisant une identité

Répondre

1

Il est évident que MOSS est configuré pour utiliser l'authentification Windows (kerberos) et imersonation. Si vous n'avez pas besoin d'emprunter l'identité de l'utilisateur actuel connecté à Moss, désactivez l'emprunt d'identité (dans web.config). Vous constaterez que les fichiers journaux seront créés et écrits par l'utilisateur sous lequel le pool d'applications de votre installation de mousse est en cours d'exécution. Si vous devez utiliser l'emprunt d'identité, une autre solution consiste à donner à chacun le droit de créer et d'écrire des fichiers dans le répertoire des journaux (et UNIQUEMENT dans le répertoire des journaux). Ce n'est pas exactement la meilleure idée, cependant. Vous pouvez interdire les droits de lecture pour tout le monde, sauf pour ceux qui ont besoin de lire les journaux, mais vous devrez quand même vous inquiéter des personnes qui essaieront de vous faire DOS en remplissant le disque.

Le troisième choix consiste à changer d'identité avant de vous connecter. Quelque chose comme cela pourrait fonctionner:

var wic = WindowsIdentity.Impersonate(IntPtr.Zero); // "revert to self" 
/* LOG GOES HERE K */ 
wic.Undo(); // return to impersonation 

BIG OPPOSITION: Je suis en train d'apprendre ce genre de choses moi-même, de sorte que le code ci-dessus ne fonctionne pas du tout. Si c'est le cas, c'est gentil car vous n'aurez pas besoin de p/invoke pour vous connecter à votre identité d'écriture, ce qui signifie également que vous n'aurez pas à créer cet utilisateur et stocker votre mot de passe en clair dans votre application.

Je me demande où est le vieux Skeeter sur celui-ci? La sécurité de Windows nécessite de lourdes charges; Je ne fais que commencer par la barre en ce moment ...

+0

a beaucoup aimé votre réponse, je pense que l'usurpation d'identité doit rester car c'est ainsi que MOSS vérifie les autorisations internes pour mousser le contenu connexe (listes, documents, pages, etc), mais il semble que j'ai besoin d'écrire une fonction ExecuteWithElevatedPrivileges. –

+0

Vous n'avez pas à élever, il vous suffit de réverbérer. ce n'est pas juste, mais ça rime. Vous pouvez désactiver l'emprunt d'identité en utilisant l'exemple de code que j'ai donné (IT IS NOT PRODUCTION WORTHY! Lisez dessus!) Pour revenir à l'identité du processus de travail ASP.NET pendant que vous vous connectez. – Will

+0

De cette façon, vous n'avez qu'à configurer les acl pour un utilisateur. – Will

Questions connexes