Veröffentlicht 2. Mai 200619 j Hallo alle zusammen, ich suche eine Möglichkeit abzufragen welche .NET Rechte eine bestimmte .NET Methode zur Ausführung benötigt. File.Open(..) benötigt z.B. zur Ausführung die FileIOPermissions FileIOPermissionAccess.Read FileIOPermissionAccess.Write Bei Methoden die direkt implementiert sind (Nicht abstrakt, oder Interface) steht dies im Regelfall in der Dokumentation mit drin. Bei abstrakten, oder Interface Methoden steht dies (verständlicherweise) nicht mit drin, da dies ja auch schlecht festzustellen wäre, welche Rechte die Methode nach der späteren Implementation benötigt. Daher ist meine Frage ob es eine Möglichkeit gibt die benötigten Rechte einer bereits implementierten Methode abzufragen. z.B. Eine Methode wie [...].GetRequiredAuthorizationsOfMethod(Objekt.Methode), welche eine Liste mit den entsprechenden Rechten zurückliefert. Sehr interessant wäre das ganze natürlich auch auf Dateiebene um z.B. zu überprüfen welche Rechte eine *.exe Datei oder Bibliothek benötigt. [...].GetRequiredAuthorizationsOfFile(string filename). MfG MarkusLe
3. Mai 200619 j Hmmm...spontan fallen mir nur Exceptions ein: try { File.Open("foobar.exe"); } catch (UnauthorizedAccessException ex) { //... } Allerdings tritt die bei folgenden Dingen auf: System.UnauthorizedAccessException: path specified a file that is read-only.-or- This operation is not supported on the current platform.-or- path specified a directory.-or- The caller does not have the required permission. Genauer eingrenzen...hmmm
4. Mai 200619 j Whatever, Exceptions sind nicht unbedingt eine praktikable Möglichkeit um die benötigten Berechtigungen einer Methode herauszufinden. In deinem Beispiel für File.Open(..) wäre z.B. die Doku die deutlich bessere Wahl^^ Da steht es zu dieser Methode drin. Deine Fehlermeldung sagt leider nicht besonders viel über die notwendigen Rechte (FileIOPermissionAccess.Read und FileIOPermissionAccess.Write) aus. In meinem Konkreten Fall geht es um die benötigten Rechte zur Ausführung CodeDom C#-Compilers.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.