The .NET Framework enforces secuity at several levels. For example, assemblies downloaded from the Internet have very limited permissions (especially after installing the Service Pack 1 of the Framework). This means that many operations that would be legal in some cases may throw an exception in others.
In general, the exception being thrown has “security” in its name, so you can often understand when an assembly isn’t working property because of security issues. In some cases, however, the exception is caught somewhere in your code, and the application malfunctions without any apparent causes. In this case, you can easily tell whether security is involved.
The easiest way to understand whether security is the cause of the problem is to temporarily disable .NET security completely. You can do this with the CASPOL command line utility:
caspol –security off
The above command disables security at the machine level, for all the version of the .NET framework installed on the computer. Of course, you should re-enable security as soon as you fix the problem, with this command:
caspol –security on