S
Stu Carter
Hi,
Env: Windows 2003, VS 2003, .Net 1.1
We just started strong naming our assemblies and ran into a .Net Security
Exception when remoting between ASP.Net and our Windows service. The
remoting call that failed with this exception returns an array of DataRows
(from a strongly typed DataSet) from the service to ASP.Net. All our
assemblies (apart from Microsft.Security.SSPI sink) are private.
The exception is:
Security Exception
Description: The application attempted to perform an operation not allowed
by the security policy. To grant this application the required permission
please contact your system administrator or change the application's trust
level in the configuration file.
Exception Details: System.Security.SecurityException: Request failed.
Source Error:
An unhandled exception was generated during the execution of the
current web request. Information regarding the origin and location of the
exception can be identified using the exception stack trace below.
Stack Trace:
[SecurityException: Request failed.]
Anyway, we solved this by setting the 'typeFilterLevel' to 'Full' in our
server config file:
<formatter ref="binary" typeFilterLevel="Full" />
After some research I found that people have mentioned security and possible
performance issues with setting this level to 'Full', so I've a few
questions on the implications of opening this up:
1) Why does strong naming a private assembly cause this problem, when an
unnamed private assembly works fine?
2) I doubt it, but are there any performance issues?
3) The security issues appear to be from spoofing and code injection:
http://blogs.msdn.com/manishg/archive/2004/10/27/248841.aspx
Can you please confirm that these security issues existed before we strong
named our assemblies and had to set the typeFilterLevel to full?
This doesn't mean we'll ignore the vulnerabilities (we already authenticate
callers), but we're just trying to understand the impact of this change.
Thanks very much,
Stuart
PS. This is reposted from 'microsoft.public.dotnet.security' as I didn't
realise that one wasn't a managed group.
Env: Windows 2003, VS 2003, .Net 1.1
We just started strong naming our assemblies and ran into a .Net Security
Exception when remoting between ASP.Net and our Windows service. The
remoting call that failed with this exception returns an array of DataRows
(from a strongly typed DataSet) from the service to ASP.Net. All our
assemblies (apart from Microsft.Security.SSPI sink) are private.
The exception is:
Security Exception
Description: The application attempted to perform an operation not allowed
by the security policy. To grant this application the required permission
please contact your system administrator or change the application's trust
level in the configuration file.
Exception Details: System.Security.SecurityException: Request failed.
Source Error:
An unhandled exception was generated during the execution of the
current web request. Information regarding the origin and location of the
exception can be identified using the exception stack trace below.
Stack Trace:
[SecurityException: Request failed.]
Anyway, we solved this by setting the 'typeFilterLevel' to 'Full' in our
server config file:
<formatter ref="binary" typeFilterLevel="Full" />
After some research I found that people have mentioned security and possible
performance issues with setting this level to 'Full', so I've a few
questions on the implications of opening this up:
1) Why does strong naming a private assembly cause this problem, when an
unnamed private assembly works fine?
2) I doubt it, but are there any performance issues?
3) The security issues appear to be from spoofing and code injection:
http://blogs.msdn.com/manishg/archive/2004/10/27/248841.aspx
Can you please confirm that these security issues existed before we strong
named our assemblies and had to set the typeFilterLevel to full?
This doesn't mean we'll ignore the vulnerabilities (we already authenticate
callers), but we're just trying to understand the impact of this change.
Thanks very much,
Stuart
PS. This is reposted from 'microsoft.public.dotnet.security' as I didn't
realise that one wasn't a managed group.