Fernando, Thanks for your details explanation! I actually did play with security policy when I was studying CAS and related things, but since that I reinstalled my computer (when h/w upgraded), so now it is default. However I double checked the policy and it is Unrestricted, My_Computer_Zone and all seems ok here. I suppose it is CSC restricting permission before executing permission's code. I have FW 1.1 SP1 installed, if it differs from yours.
Also, I understand that it was conceptual thing and I tried to do other things just to understand if I can run this or that code during compilation. Sincerely, Ilya Ryzhenkov > -----Original Message----- > From: Unmoderated discussion of advanced .NET topics. > [mailto:[EMAIL PROTECTED] On Behalf Of > Fernando Tubio > Sent: Monday, January 31, 2005 2:39 AM > To: [email protected] > Subject: Re: [ADVANCED-DOTNET] Determing time when a assembly > was built > > Ilya, > > I am not sure why retrieving the UserName is not working in > your environment but I don't believe that this is related to > the fact that you are not running as an administrator. In > fact, judging from the error message you have posted, this > appears to be due to .NET's security policy. Have you > modified the runtime security policy in any way? Or are you > perhaps building from a network share? It appears that the > assembly containing the code access permission has not been > granted the required EnvironmentPermission. > > You can verify which permissions have been granted to the > assembly by using the .NET Framework Configuration Tool. Open > the console and select 'Runtime Security Policy', right-click > to display the context menu and select 'Evaluate > Assembly...', and then browse to locate the assembly > containing the custom attribute and permission. Choose 'View > permissions granted to the assembly' and then 'Next'. This > should tell you if the assembly has the required permissions. > At least in my machine, where I believe that the security > policy has not been modified, this yields the 'Unrestricted' > permission set. You can also view which code groups are > actually granting permissions to the assembly by choosing > 'View code groups that grant permissions to the assembly'. > This should help you determine why you are not getting the > necessary permissions. In the typical case the assembly > should be receiving it's permissions from the 'My Computer Zone'. > > In any case, including the user name in the example, was > simply meant to show that it was possible to embed additional > information, other than the build time, that could only be > determined at compile time. I am not really certain that it > serves any useful purpose. > > Fernando Tubio > > ----- Original Message ----- > From: "Ilya P. Ryzhenkov" <[EMAIL PROTECTED]> > Sent: Sunday, January 30, 2005 1:42 PM > Subject: Re: Determing time when a assembly was built > > > Fernando, > > Thanks, that's very interesting. But your example didn't work > for me out of the box: > > d:\projects\assembly1\assembly2\test.cs(8,2): error CS0647: > Error emitting 'Assembly1.BuildAttribute' attribute -- > 'Unexpected exception processing attribute -- > System.Security.SecurityException: Request for the permission > of type System.Security.Permissions.EnvironmentPermission, > mscorlib, Version=1.0.5000.0, Culture=neutral, > PublicKeyToken=b77a5c561934e089 failed. > > The state of the failed permission was: > <IPermission class="System.Security.Permissions.EnvironmentPermission, > mscorlib, Version=1.0.5000.0, Culture=neutral, > PublicKeyToken=b77a5c561934e089" > version="1" > Read="UserName"/> > .' > > However, I'm running as non-admin, may be this is the reason. > If I remove Environment.UserName all works fine. So at least > getting build date/time works. Cool! > > Sincerely, Ilya Ryzhenkov > > =================================== > This list is hosted by DevelopMentor(r) http://www.develop.com > > View archives and manage your subscription(s) at > http://discuss.develop.com > =================================== This list is hosted by DevelopMentor� http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com
