\documentclass{icai}
\begin{document}
%_______________________________________________________________________
\title{Runtime Access Control in C\#}
\thanks{Supported by the Hungarian Ministry of Education 
        under Grant FKFP0018/2002}
\author{Krisztián Pócza, Mihály Biczó, Zoltán Porkoláb}
\institute{
           Dept. of Programming Languages and Compilers, \\ 
           Fac. of Informatics, E\"otv\"os Lor\'and University, Budapest \\ 
           e-mail:kpocza@kpocza.net, mihaly.biczo@axelero.hu, gsd@elte.hu   }
\address{\textbf{Kriszti\'an P\'ocza}\\ P\'azm\'any P\'eter s\'et\'any 1/c.,
         H-1117 Budapest, Hungary\AND
         \textbf{Mih\'aly Bicz\'o}\\ P\'azm\'any P\'eter s\'et\'any 1/c.,
         H-1117 Budapest, Hungary\AND
         \textbf{Zolt\'an Porkol\'ab}\\ P\'azm\'any P\'eter s\'et\'any 1/c. 
         H-1117 Budapest, Hungary}
%_______________________________________________________________________
% You can define environment for private theorem
\privatetheorem{prob}{Problem}{\rm}
%_______________________________________________________________________
\begin{ICAIpaper}
\begin{abstract}

Compile time or runtime visibility and access control checking is the key part of modern languages and runtime environments. 
They enforce responsibility separation, implementation and security policies. 
The Eiffel programming language defines sophisticated selective access control, but most modern programming 
languages like C++, C\# and Java do not have this feature only a subset or combination of the following access modifiers: 
public, private, protected, internal and friend. 
The .NET Framework enforces some security policy in runtime called Code Access Security but it restricts external resource 
access for programs written in any .NET-language like C\#. In this paper first we describe the existing access control features 
of the C\# language then show a scenario where a more sophisticated access control is required. We introduce a method 
level access control checking mechanism to C\# which is able to enforce Eiffel-like selective export in runtime. 
Our implementation does not require the modification of the compiler and the caller but the callee and introduces 
minimal syntactic overhead. It can be a practical solution for modular systems where runtime security is important.
Keywords: access control, runtime, C\#
% itt tilos space-t hagyni:
\keywords object-oriented programming, access control, runtime, C\#
\AMSclassificationnumber 68N15 Programming languages 
\end{abstract}


\end{ICAIpaper}
\end{document}
