Sunday 23 October 2011

What is the concept of strong names?

How do we generate strong names ?

What is the use of SN.EXE ?

How do we apply strong names to assembly?

How do you sign an assembly?

Strong name is similar to GUID(It is supposed to be unique in space and time) in COM components.Strong Name is only needed when we need to deploy assembly in GAC. Strong Names helps GAC to differentiate between two versions. Strong names use public key cryptography (PKC) to ensure that no one can spoof it.PKC use public key and private key concept.
Following are the step to generate a strong name and sign a assembly :-

Go to “Visual Studio Command Prompt”. See below figure “Visual studio Command Prompt”. Note the samples are compiled in 2008 but 2005 users do not have to worry about it. Same type of command prompt will be seen in 2003 also.

Visual Studio Command Prompt


After you are in command prompt type sn.exe -k “c:\test.snk”.


Running SN.EXE



Successful output of SN.EXE



Sample view of test.snk file


After generation of the file you can view the SNK file in a simple notepad.
After the SNK file is generated its time to sign the project with this SNK file.


Click on project and then click on “classlibrary1 properties” menu to sign the assembly


Click on project -- properties and the browse the SNK file to the respective folder and compile the project.


Click on Use a key file to sign the assembly with strong name

2 comments: