Hi,
I have written a class library and i don't want unauthorized access to
some (or all) methods in this library. With some research , i found that
i can use strongly named assemblies for this purpose
Here is what i did:
1- I created a consumer assembly signed with myKeyFile.snk
2- I get public key of this assembly with secutil.exe
3- I added StrongNameIdentityPermissionAttribute to the methods of class
library with LinkDemand option and the public key of consumer assembly
4- I signed my class library with a key file also,otherwise i cannot
reference it to consumer assembly.
Now i get it work, but i got a question. With this method all the
consumers of class library should be signed with same key file.
What if consumer assembly has some other references that have
StrongNameIdentityPermissionAttribute with different public keys ?
as far as i know ,we cannot sign an assembly with more than one key file.
and is there any other method to get same functionality?
thanks so much
Yener
Henning Krause [MVP - Exchange] - 24 Feb 2008 20:48 GMT
Hello,
even the StrongNameIdentityPermission won't absolutely prevent someone from
calling your code. If he has access to the binaries he can either disable
CAS completely or decompile your assembly, remove the check and recompile
it. It's a matter of minutes.
If you really want to prevent people from running your code you should not
give it to them.
Kind regards,
Henning Krause
> Hi,
>
[quoted text clipped - 20 lines]
> thanks so much
> Yener
Dominick Baier - 17 Mar 2008 20:14 GMT
StrongNameIdentityPermission is ignored in full trust.
-----
Dominick Baier (http://www.leastprivilege.com)
Developing More Secure Microsoft ASP.NET 2.0 Applications (http://www.microsoft.com/mspress/books/9989.asp)
> Hello,
>
[quoted text clipped - 35 lines]
>> thanks so much
>> Yene