2008-10-20 7 views
5

Mon application Web écrit dans plusieurs dossiers (journaux, téléchargements, etc.) et j'ai toujours défini ces autorisations manuellement via mon fournisseur d'hébergement.Puis-je créer un dossier accessible en écriture dans Trust moyen?

Je voudrais créer un script d'installation qui effectue cela sur les nouvelles installations. Est-ce possible sous Moyenne confiance?

Je ne peux même pas appeler File.GetAccessControl, encore moins File.SetAccessControl, mais je n'ai pas besoin d'un tel "gros marteau", de toute façon. Je veux juste faire ce que le FAI (dans ce cas GoDaddy) me laisse faire à travers une console de gestion.

Je crois que PHP est capable de faire cela, et je serais prêt à envisager une page PHP à cette fin si c'est possible.

+0

Avez-vous vérifié si l'utilisateur qui exécute le script a accès pour définir les contrôles d'accès Windows? –

Répondre

2

Ok en supposant que vous utilisez IIS et asp.net de la manière habituelle vous devez avoir un compte asp.net sous lequel le framework exécute votre application en votre nom.

L'application Web s'exécute sous un seul compte et grâce à l'authentification, les utilisateurs se voient accorder un accès par programme pour faire les choses que votre «compte principal» effectue en leur nom.

Pensez comme regarder quelque chose comme ça ....

Asp.net charge votre application (compte asp) connecte l'utilisateur (compte IUSER) utilisateur se connecte (? En fonction de compte utilisé pourrait être fenêtres auth ou formes auth, ect)

demandes des utilisateurs à faire quelque chose en utilisant vos pages Web rendus dans leurs comptes ...

asp.net utilisateur chèques a l'autorisation d'effectuer une opération (asp.net acount) si l'utilisateur peut faire cela asp.net agit sur l'action demandée (asp.n et compte)

Par conséquent ... Vous devriez déjà avoir les permissions appropriées dans ce compte asp.net pour faire ce que vous devez faire.

Il y a un niveau au-dessus de tout cela ... le serveur IIS lui-même fonctionne normalement sous le compte du service système/réseau.

Donc, la question est vraiment ... Comment voulez-vous accorder les autorisations à un utilisateur possible d'écrire sur le serveur. Jetez un coup d'oeil sur les classes providerprovider et provider provider dans le framework vous devriez pouvoir en hériter et créer une classe ActiveDirectoryRoleProvider et ActiveDirectoryMembershipProvider qui s'authentifierait en fonction de l'appartenance au rôle des utilisateurs dans AD, ou si vous préférez simplement vous authentifier contre une base de données avec les classes de base du fournisseur asp.net.

Espérons que cela aide.

+0

Oh je voudrais simplement ajouter, si vous avez besoin de remplacer le niveau de confiance du code, vous pouvez le faire en fonction de l'utilisateur ayant la permission de le faire. Donc, si vous trouvez que "confiance moyenne" ne suffit pas et l'utilisateur authentifié est un administrateur système, alors je crois que vous pouvez remplacer en fonction de l'utilisateur demandant les autorisations. Je ne pense pas que vous aurez besoin de le faire. – War

+0

Merci pour l'entrée. Cela apporte un peu de lumière sur les différents comptes utilisés dans une configuration typique. Si l'application se connecte via le compte IUSR, comment alors profiter des autorisations disponibles uniquement pour le compte ASP.NET? – harpo