Dynamics AX: FileIOPermission - Was ist das?

Die CodeAccessPermission-Klasse ist ein Mechanismus aus dem .NET-Framework, um den Zugriff von server-seitig ausgeführtem Quellcode auf geschützte Bereiche (z.b. einer Dateistruktur) vor bösartigen Attacken zu schützen.

Ob Code server- oder client-seitig ausgeführt wird, steuert bekanntermaßen das sogenannte RunOn-Property. Diese Eigenschaft ist z.b. beim Neuanlegen einer Klasse immer auf Called from eingestellt. D.h. wird diese Klasse über einen Menuitembutton aufgerufen läuft sie client-seitig, wird diese Klasse aber z.B. aus einem Stapellauf heraus aufgerufen, läuft sie am AOS.

 

Hat man also eine Klasse, die server-seitig laufen kann und bei der auf geschützte Bereiche zugegriffen wird, muß man eine der CodeAccessPermission-Klassen in seinen Programmcode einbinden.

Die bekannteste Klasse, die von der CodeAccessPermission abgeleitet ist, ist die FileIOPermission-Klasse, die für den Zugriff auf Dateien (über AsciiIo, TextIo, …) verwendet wird. Diese Klasse wird wie folgt verwendet:

FileIoPermission FileIoPermission;
AsciiIo          AsciiIo;
;
FileIoPermission = new FileIoPermission("c:\\File.txt",'w');
FileIoPermission.assert();

AsciiIo = new AsciiIo("c:\\File.txt",'w');
// ...

Muß man innerhalb einer Methode die assert-Methode mehrmals aufrufen, ist dies nur möglich wenn man zwischen den einzelnen Aufrufen CodeAccessPermission::revertAssert() einbindet.

FileIoPermission FileIoPermission;
AsciiIo          AsciiIo;
;
FileIoPermission = new FileIoPermission("c:\\File.txt",'w');
FileIoPermission.assert();

AsciiIo = new AsciiIo("c:\\File.txt",'w');
// ...

CodeAccessPermission::revertAssert()

FileIoPermission = new FileIoPermission("c:\\File_2.txt",'w');
FileIoPermission.assert();

AsciiIo = new AsciiIo("c:\\File_2.txt",'w');
// ...

Näheres zu den CodeAccessPermission-Klassen bzw. derer Kinder sind in der MSDN zu finden. 

Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2012

 
 

 

 
 
 
Beiträge des aktuellen Monats
November 2024
MoDiMiDoFrSaSo
 123
45678910
11121314151617
18192021222324
252627282930 
 
© 2006-2024 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu