Code Access Security - Demo Code

This class handles opening a file and returning the contents.

 

using System;
using System.Security.Permissions;
using System.Security;
using System.IO;
[assembly: FileIOPermission(SecurityAction.RequestMinimum, Read = @"c:\temp.txt")]
namespace FileIOClass
{

 public class SecureIO
{
private string fname = @"c:\temp.txt";
public SecureIO()
{

  }

  public string OpenFile()
{
StreamReader sr = new StreamReader(fname);
return sr.ReadToEnd();
}
public string OpenFileWithAssert()
{
FileIOPermission filePerm = new FileIOPermission(
FileIOPermissionAccess.AllAccess, fname);
filePerm.Assert();
StreamReader sr = new StreamReader(fname);
string s = sr.ReadToEnd();
CodeAccessPermission.RevertAssert();
return s;
}
public string OpenFileWithDemandAndAssert()
{
RegistryPermission regPerm = new RegistryPermission(PermissionState.Unrestricted);
regPerm.Demand();
FileIOPermission filePerm = new FileIOPermission(
FileIOPermissionAccess.AllAccess, fname);
filePerm.Assert();
StreamReader sr = new StreamReader(fname);
string s = sr.ReadToEnd();
CodeAccessPermission.RevertAssert();
return s;
}
}
}