2010-04-24 4 views
0

Pourquoi dois-je demander l'autorisation? Pourquoi ne peut-il simplement échouer (en commentant l'appel .Demand())?sécurité d'accès au code

ref: http://support.microsoft.com/kb/315529 Merci!

try 
{ 
// Demand the permission to access the C:\Temp folder. 
permFileIO.Demand(); 
resultText.Append("The demand for permission to access the C:\\Temp folder succeeded.\n\n"); 
} 

- modifier 1 -

Je lis quelque part que le TAS va loin, car il est une douleur pour configurer. Est-ce correct?

Répondre

1

Vous n'avez pas besoin de la demande. Si vous le supprimez et que vous avez des restrictions de sécurité, une exception de sécurité sera simplement levée. L'avantage de la demande est que le moteur d'exécution peut déterminer les droits exacts requis par votre application (par exemple, qu'il a besoin de FileIOPermission pour un répertoire spécifique), puis laisser l'utilisateur/administrateur le configurer.

+0

> l'utilisateur/admin le configure. S'il vous plaît élaborer. Merci. – rkrauter

+0

Ceci est une applet du panneau de contrôle qui vous permet de configurer exactement cela. Mais comme vous avez écrit (correctement) CAS dans ce formulaire est parti. Net 4.0 parce que fondamentalement personne n'a jamais créé de jeux de droits (il y a des milliards (à côté de l'infini) de combinaisons de droits possibles) pour chaque application. – Foxfire

2

Si vous voulez échouer avant d'avoir reçu l'appel qui nécessite une autorisation, vous pouvez également décorer la méthode d'appel de façon déclarative, qui échouera avant même que la méthode ne soit appelée. Cela rend également le code beaucoup plus propre et plus facile à déboguer.

[FileIOPermission(SecurityAction.Demand, [email protected]"C:\Temp ")] 
public void MyTempFunction(){.... 
Questions connexes