2012-08-30 3 views
0

Est-ce que quelqu'un connaît la spécification de la façon dont les données UrlAcl sont stockées dans le registre? Je sais que je peux trouver les valeurs dans HKLM \ System \ CurrentControlSet \ services \ HTTP \ Parameters \ UrlAclInfo. Chaque nom de valeur est l'URL réelle enregistrée, cependant, le reste des données réelles est en binaire. Je dois pouvoir obtenir le nom d'utilisateur auquel l'urlacl a été enregistrée. Est-ce que quelqu'un sait où je peux trouver comment analyser les données binaires pour obtenir l'information dont j'ai besoin?UrlAcl Info dans le registre

Merci!

+0

J'irais avec la suggestion de Jim Mischel d'utiliser l'API. La plupart des données de registre ne sont pas spécifiées publiquement ou destinées à être interprétées par autre chose que le code qui les a créées. Même si vous pensez que vous avez réussi à l'ingénierie inverse, il ne prend qu'un seul cas que vos tests n'ont pas vu avant de mettre tout le monde à un arrêt brutal :) – shambulator

Répondre

1

Une alternative serait d'exécuter votre programme netsh http show urlacl, de rediriger la sortie, puis de l'analyser. Voir Redirecting console output to another application pour un exemple.

Idéalement, vous pouvez accéder aux informations de l'API Windows. Je sais qu'à un moment l'API en question était "non publiée". Je ne sais pas si ça a été documenté maintenant.

Mise à jour: Peut-être que HttpQueryServiceConfiguration est ce que vous cherchez? Il y a plusieurs wrappers C# pour les fonctions HttpApi. Recherchez [httpapi C#]. Je ne sais pas si certains d'entre eux vont faire ce que vous voulez, mais ils ont l'air prometteur. Selon les docs, HttpApi est disponible pour Windows XP avec SP2, Windows Server 2003 et toutes les versions ultérieures.

+0

Malheureusement, je dois supporter Windows XP et Server 2003 comme bien, ou j'irais probablement cette route. Et je ne peux pas compter sur l'utilisateur ayant les utils de support installés pour utiliser httpconfig pour ces systèmes. Merci tout de même pour ta contribution! –

+0

@JoshJohnson: Voir ma mise à jour. –

+0

@JimMischel Je pense que c'est la bonne API. Le [projet WiX-contrib] (http://wixcontrib.codeplex.com/) a une extension destinée à créer des ACL d'URL lors de l'installation de l'application. Bien que ce ne soit pas du code de production (et que les parties concernées soient en C++), il peut y avoir des pointeurs d'utilisation pratiques. – shambulator