Private Assemblies & Strong Names??

Ask a Question related to ASP.NET Security, Design and Development.

  1. #1

    Default Private Assemblies & Strong Names??

    Hi, I've signed a private assembly with a strong name and have deployed it in a web app's bin directory. Things work fine, yet I recently read you "can't" do this:

    From: [url]http://msdn.microsoft.com/library/en-us/dnnetsec/html/THCMCh09.asp[/url]
    "private assemblies... This type of assembly cannot be strong named. Strong named assemblies used by ASP.NET Web applications must be installed in the global assembly cache. This restriction is necessary because of the internal workings of the multi-application domain worker process."

    I wonder if this statement is as literal as the wording suggests or if the author is being bombastic. Could it be that the statment really means: "If you want to re-use your assembly in multiple application domains you need to sign it with a strong name and deploy it to the GAC"?

    The code in my signed assembly sends email; I'm currenlty calling the class directly, but I'd like to use declarative security in order to only allow an inputValidation class to call it directly.

    There are various reasons why I prefer not to install these assemblies in the GAC. Is installing them in the GAC really my only option if I want the assembly to have a strong name(even if I really don't need the strong name)?
    Chris Mohan Guest

  2. Similar Questions and Discussions

    1. HTML embbeded (via <object> tag) Strong FullTrust Assemblies fail!
      My problem: I am attempting to create a strong named .NET library assembly which needs FullTrust permissions when loaded from the Internet zone and...
    2. COM Interop and Delay Signing of Strong Names
      I have a VB.NET DLL that I wish to Delay Sign (ie. I want to assign a strong name after compiling the DLL and obfuscating it). This DLL will also be...
    3. Strong Names and Web Assemblies
      I have an assembbly that consists of several .NET DLLs, some of which I compile in advance, some of which customized for the indivudual user...
    4. Private Fotopages - private Web Galleries WANTED!
      Hello NG I am still seeking links to private (hobby / non professional/ amateur) fotopages in Australia -or any other Country to be used at...
    5. Machine names v. User names
      Good Morning... Unfortunately one of our mainframe processes require a local machine name that is identical to the local user account name. For...
  3. #2

    Default RE: Private Assemblies & Strong Names??

    Hi Chris,

    In a word, yes. In the current architecture of ASP.NET, strong-named
    assemblies are loaded domain neutral. That means that they are not
    unloaded until the ASP.NET worker process is unloaded. This can cause
    issues with file access because the files remain locked by the process even
    when the app domain is unloaded.

    In version 1.0 and 1.1, strong-named assemblies are retricted to the GAC
    only.

    Jim Cheshire [MSFT]
    MCP+I, MCSE, MCSD, MCDBA
    Microsoft Developer Support
    [email]jamesche@online.microsoft.com[/email]

    This post is provided "AS-IS" with no warranties and confers no rights.


    --------------------
    >Thread-Topic: Private Assemblies & Strong Names??
    >thread-index: AcRogC6GKCVSc+YNRg2OuCyxd+/P2Q==
    >X-WBNR-Posting-Host: 192.239.90.254
    >From: "=?Utf-8?B?Q2hyaXMgTW9oYW4=?=" <ChrisMohan@discussions.microsoft.com>
    >Subject: Private Assemblies & Strong Names??
    >Date: Mon, 12 Jul 2004 19:22:01 -0700
    >Lines: 10
    >Message-ID: <FB5FF40F-B2D0-4896-8B94-4300572C1060@microsoft.com>
    >MIME-Version: 1.0
    >Content-Type: text/plain;
    > charset="Utf-8"
    >Content-Transfer-Encoding: 7bit
    >X-Newsreader: Microsoft CDO for Windows 2000
    >Content-Class: urn:content-classes:message
    >Importance: normal
    >Priority: normal
    >X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0
    >Newsgroups: microsoft.public.dotnet.framework.aspnet.security
    >NNTP-Posting-Host: TK2MSFTNGXA03.phx.gbl 127.0.0.1
    >Path: cpmsftngxa06.phx.gbl!TK2MSFTNGXA01.phx.gbl!TK2MSFT NGXA03.phx.gbl
    >Xref: cpmsftngxa06.phx.gbl
    microsoft.public.dotnet.framework.aspnet.security: 10758
    >X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet.security
    >
    >Hi, I've signed a private assembly with a strong name and have deployed it
    in a web app's bin directory. Things work fine, yet I recently read you
    "can't" do this:
    >
    >From: [url]http://msdn.microsoft.com/library/en-us/dnnetsec/html/THCMCh09.asp[/url]
    >"private assemblies... This type of assembly cannot be strong named.
    Strong named assemblies used by ASP.NET Web applications must be installed
    in the global assembly cache. This restriction is necessary because of the
    internal workings of the multi-application domain worker process."
    >
    >I wonder if this statement is as literal as the wording suggests or if the
    author is being bombastic. Could it be that the statment really means: "If
    you want to re-use your assembly in multiple application domains you need
    to sign it with a strong name and deploy it to the GAC"?
    >
    >The code in my signed assembly sends email; I'm currenlty calling the
    class directly, but I'd like to use declarative security in order to only
    allow an inputValidation class to call it directly.
    >
    >There are various reasons why I prefer not to install these assemblies in
    the GAC. Is installing them in the GAC really my only option if I want the
    assembly to have a strong name(even if I really don't need the strong name)?
    >
    Jim Cheshire [MSFT] Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139