Many a times in your application, you would want to have a security scheme which would ensure that your code is not referenced and misused by other assemblies. For instance, there might be public types representing custom Identities and Principals which you wouldn’t want other applications to use, or some sensitive/proprietary logic, you name it. .NET BCL does provide a handy class StrongNameIdentityPermission which gives you a simple scheme for effecting the same.
You can refer to this walkthrough for more information on how this permission can be used. Also, check this blog entry and the related discussion for more insights.