Re: Yet another Network App question (slightly different though);

From: Fernando Vicaria [MSFT] (fvicaria_at_online.microsoft.com)
Date: 06/24/04


Date: Wed, 23 Jun 2004 15:23:47 -0700

Hi Matt,

You would need to demand for an identity permission here, either Zone or
Url. But this on its own is easy to fake so you should think of additional
security checks such as strong name or/and the use of an intermediate caller
assembly which will have your security checks built-in (and properly
obfuscated if necessary).

Have a look at UrlIdentityPermission and ZoneIdentityPermission.

Thanks,
Fernando

"Matt Budd" <whoami2001ca@yahoo.ca> wrote in message
news:evhclEIWEHA.2520@TK2MSFTNGP12.phx.gbl...
> Hello all,
>
> I've looked through this newsgroup and saw lots of questions about running
> an application from a network drive or a local network. I know that when
> you
> do this, it puts the assembly into a different "zone" of trust which is
> more
> restrictive.
>
> In my situation this is a good thing. We don't want to allow our
> application
> to be run over the network and want to force them to install it (and buy
> it)
> on each local machine. The problem I'm having is that when you attempt to
> run it off the network drive, it dies on you and you get a
> System.Security.SecurityException unhandled exception. What I want to do
> is
> basically catch this exception and then display a readable error message
> explaining that it has to be run locally.
>
> I've tried the following code at the very start of my Main() function:
> [STAThread]
> static void Main(string[] pasArgs)
> {
> try {
> if
> (System.Security.SecurityManager.ResolvePolicy(typeof(frmMain).Assembly.Evid
> ence).IsUnrestricted() == false) {
> MessageBox.Show("Must run locally!");
> return;
> }
> } catch (System.Security.SecurityException e) {
> MessageBox.Show(e.ToString());
> return;
> }
>
>
> But I still get the exception and neither of my messageboxes show. Any
> ideas
> how to catch this exception?
>
> - Matt
>
>



Relevant Pages