<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="https://www.schweda.net/style_feed.css" ?>
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:atom="http://www.w3.org/2005/Atom"	
	xmlns:dc="http://purl.org/dc/elements/1.1/" > 
<channel>
    <title>schweda.net - Blog</title>
    <link>https://www.schweda.net/</link>
    <description>schweda.net - Blog - Blog-Beitraege</description>
    <language>de-at</language>
    <copyright>Copyright 2006-2026</copyright>
    <generator>schweda.net</generator>
    <managingEditor>heinz.schweda@schweda.net (Heinz Schweda)</managingEditor>
    <webMaster>heinz.schweda@schweda.net (Heinz Schweda)</webMaster>
    <category>Blog</category>
	<atom:link href="https://www.schweda.net/blog_rss.php?bid=232" rel="self" type="application/rss+xml" />
<item>
<title><![CDATA[Dynamics AX: FileIOPermission - Was ist das?]]></title>
<description><![CDATA[
<p>Die <strong>CodeAccessPermission</strong>-Klasse ist ein Mechanismus aus dem .NET-Framework, um den Zugriff von <strong>server-seitig ausgef&uuml;hrtem Quellcode auf gesch&uuml;tzte Bereiche</strong> (z.b. einer Dateistruktur) vor b&ouml;sartigen Attacken zu sch&uuml;tzen.
</p>


<p>Ob Code server- oder client-seitig ausgef&uuml;hrt wird, steuert bekannterma&szlig;en das sogenannte <em>RunOn</em>-Property. Diese Eigenschaft ist z.b. beim Neuanlegen einer Klasse immer auf <em>Called from</em> eingestellt. D.h. wird diese Klasse &uuml;ber einen <em>Menuitembutton </em>aufgerufen l&auml;uft sie client-seitig, wird diese Klasse aber z.B. aus einem Stapellauf heraus aufgerufen, l&auml;uft sie am AOS.
</p>


<p>&nbsp;
</p>


<p>Hat man also eine Klasse, die server-seitig laufen kann und bei der auf gesch&uuml;tzte Bereiche zugegriffen wird, mu&szlig; man eine der CodeAccessPermission-Klassen in seinen Programmcode einbinden.
</p>


<p>Die bekannteste Klasse, die von der CodeAccessPermission abgeleitet ist, ist die <strong>FileIOPermission</strong>-Klasse, die f&uuml;r den Zugriff auf Dateien (&uuml;ber AsciiIo, TextIo, &hellip;) verwendet wird. Diese Klasse wird wie folgt verwendet:
</p>


<pre class="pre_blog_axcode">
FileIoPermission FileIoPermission;
AsciiIo          AsciiIo;
;
FileIoPermission = new FileIoPermission(&quot;c:&#092;&#092;File.txt&quot;,&#39;w&#39;);
FileIoPermission.assert();

AsciiIo = new AsciiIo(&quot;c:&#092;&#092;File.txt&quot;,&#39;w&#39;);
// ...
</pre>


<p>Mu&szlig; man innerhalb einer Methode die assert-Methode mehrmals aufrufen, ist dies nur m&ouml;glich wenn man zwischen den einzelnen Aufrufen <em>CodeAccessPermission::revertAssert()</em> einbindet.
</p>


<pre class="pre_blog_axcode">
FileIoPermission FileIoPermission;
AsciiIo          AsciiIo;
;
FileIoPermission = new FileIoPermission(&quot;c:&#092;&#092;File.txt&quot;,&#39;w&#39;);
FileIoPermission.assert();

AsciiIo = new AsciiIo(&quot;c:&#092;&#092;File.txt&quot;,&#39;w&#39;);
// ...

CodeAccessPermission::revertAssert()

FileIoPermission = new FileIoPermission(&quot;c:&#092;&#092;File_2.txt&quot;,&#39;w&#39;);
FileIoPermission.assert();

AsciiIo = new AsciiIo(&quot;c:&#092;&#092;File_2.txt&quot;,&#39;w&#39;);
// ...
</pre>


<p>N&auml;heres zu den CodeAccessPermission-Klassen bzw. derer Kinder sind in der <a href="http://msdn.microsoft.com/en-us/library/aa625357.aspx" target="_blank" title="MSDN">MSDN</a> zu finden.&nbsp;
</p>]]></description>
<category>Microsoft Dynamics AX (Axapta)</category>
<pubDate>Thu, 05 Jun 2008 15:18:00 +0200</pubDate>
<link>https://www.schweda.net/blog_ax.php?bid=232</link>
<comments>https://www.schweda.net/blog_ax.php?bid=232</comments>
<guid isPermaLink="true">https://www.schweda.net/blog_ax.php?bid=232</guid>
<author>heinz.schweda@schweda.net (Heinz Schweda)</author>
<wfw:commentRss>https://www.schweda.net/blog_ax.php?bid=232</wfw:commentRss>
</item>
</channel>
</rss>	
