CAS (Code access security) problem occur when i want to implement StrongNameIdentityPermissionAttribute on my class/assembly. It always give me successful permission even without having public key.
Sample DLL Code
Код:
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Permissions;
namespace SampleClass
{
[StrongNameIdentityPermission(SecurityAction.Demand, PublicKey = "0024000004800000940000000602000000240000525341310004000001000100515bd67fd29477e06c5cddea9c9ef2a85579de908e8141784d22e4822b0c16586072a02d75e490a6621601c637b821de9009951ff8a220654aa3ddc62c0a5da80f1f629760ff194dd9dc3c1e69436e04ff870dc5657795aa9c7434e499bcc504150fb6e0100e6a047bae1de2a01c26d0027898ecfcec6e5fd747d449a8493399")]
public class Class1
{
public string MySampleValue = "";
public Class1(string SampleValue)
{
try
{
MySampleValue = SampleValue;
}
catch (Exception ex) { Console.WriteLine(ex.Message); }
}
}
}
Sample of calling
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Security.Permissions;
using SampleClass;
using System.Security;
namespace SampleApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Encoding enc = Encoding.Default;
//StrongNamePublicKeyBlob blob = new StrongNamePublicKeyBlob(enc.GetBytes("0024000004800000940000000602000000240000525341310004000001000100515bd67fd29477e06c5cddea9c9ef2a85579de908e8141784d22e4822b0c16586072a02d75e490a6621601c637b821de9009951ff8a220654aa3ddc62c0a5da80f1f629760ff194dd9dc3c1e69436e04ff870dc5657795aa9c7434e499bcc504150fb6e0100e6a047bae1de2a01c26d0027898ecfcec6e5fd747d449a8493399"));
//StrongNameIdentityPermission per = new StrongNameIdentityPermission(blob, "SampleClass", new Version("1.0.0.0"));
SampleClass.Class1 clss = new Class1("Wachach!");
if (clss != null)
MessageBox.Show(clss.MySampleValue);
else
MessageBox.Show("clss is null.");
}
}
}