Моё меню Общее меню Пользователи Правила форума Все прочитано
Вернуться   uForum.uz > ИКТ и телеком > IT-индустрия > Софт > Программирование > .NET & ASP.NET
Знаете ли Вы, что ...
...нарушения правил форума наказываются. Старайтесь их не нарушать.
<< Предыдущий совет - Случайный совет - Следующий совет >>

.NET & ASP.NET Вопросы программирования .NET, ASP.NET, Web Services и других WEB-технологий .NET.


Ответить

 
Опции темы Опции просмотра
Старый 15.01.2009 11:31   #1  
Аватар для _TrachinuS_
Оффлайн
DataMicron Inc.
Manager-Programmer
Сообщений: 134
+ 17  12/11
– 0  0/0

MalaysiaМой мир
Angry CAS Problems :(

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.");
        }
    }
}
__________________
Те, кому нечего сказать, обычно говорят вдвое больше.
Ответить 
Старый 16.01.2009 09:36   #2  
Аватар для _TrachinuS_
Оффлайн
DataMicron Inc.
Manager-Programmer
Сообщений: 134
+ 17  12/11
– 0  0/0

MalaysiaМой мир
Is this forum alive???
__________________
Те, кому нечего сказать, обычно говорят вдвое больше.
Ответить 
Старый 16.01.2009 11:47   #3  
Аватар для ulugbek
Оффлайн
TATU
student
Сообщений: 13
+ 5  3/3
– 0  0/0

Uzbekistan
Siz .snk formatli fay hosil qilishingiz va uni AssemblyInfo faylida
saqlashingiz lozim. Masalan:

Код:
[assembly: AssemblyKeyFile("filenomi.snk")]
ko'rinishda.

Bu faylni("filenomi.snk") hosil qilish uchun .NET Framework SDK
dan foydalanasiz.
Masalan:
Код:
sn -k <filenomi>.snk
Bu faylda bitta ochiq kalit va bitta yopiq kalit saqlanadi.
Keyinroq ushbu classni ishlatish uchunsiz ochiq kalitdan
foydalanishingiz kerak.Bu ochiq kalitni olish uchun
Secutil.axe kere buladi.Siz hosil qilmoqchi bo'lgan DLL/Assembly
nomini ishlatgan holda ochiq kalitni(Public Key) 4iqarib olasiz.
Код:
secutil -hex -c -s <sizningdll>.dll > kalit.txt
Huddi shu kalitni
Код:
[StrongNameIdentityPermission(SecurityAction.Demand, PublicKey = "ochiq kalit")]
qo'llaysiz.


SecurityAction.Demand o'rniga SecurityAction.LinkDemand ni ham qo'llashingiz mumkin.

Bu dll ni bowqa loyihalarda qo'llashda loyiha DIRiga yuqoridagi .snk faylni ko'chirib o'tqizish
va AssemblyInfoda registrasiya qilish esizdan chiqmasin. Shunda har doim loyiha ochiq kalitdan foydalanib .snk ka orqali sizi klasizga murojaat qila oladi.
Shunda kod himoyalanadi.



Bu yerda yaxshigina misol bor.
http://www.developer.com/img/article...0/Securing.zip
Ответить 
Старый 16.01.2009 12:47   #4  
Аватар для _TrachinuS_
Оффлайн
DataMicron Inc.
Manager-Programmer
Сообщений: 134
+ 17  12/11
– 0  0/0

MalaysiaМой мир
2 ulugbek,Before answering to this question Did u try yourself?

This works only on .Net Framework 1.1

And I need for .Net FrameWork 2.0 or later.

Any comments and ideas will appreciated.

Thank You!!!

PS. This Forum not breathing
__________________
Те, кому нечего сказать, обычно говорят вдвое больше.
Ответить 
Старый 16.01.2009 14:01   #5  
Аватар для _TrachinuS_
Оффлайн
DataMicron Inc.
Manager-Programmer
Сообщений: 134
+ 17  12/11
– 0  0/0

MalaysiaМой мир
So I expected I found way myself

In AssemblyInfo.cs put following code regarding your case:
Код:
[assembly: InternalsVisibleTo("SampleApp, PublicKey=002400000480000094000000060200000240000525341310004000001000100795F3BFD920B13E0267CA46EAFA218237904BB262A6650CF21F6427BEC72699970F84699111C211C6A32726957A623CBCD73870BE2BA57F6EDC5F169AC369DFFDE58FBC65DEF2D9F9E7628853C7D25FB34F5F1A64873F31777E674E66168F8721F16D96F55336C9766280D032D30B510EB058A065C6FB4AFCDF42327757019AF")]
And All your sensitive classes and members put modifier as internal.

That's all
__________________
Те, кому нечего сказать, обычно говорят вдвое больше.
Ответить 
Старый 16.01.2009 21:50   #6  
Аватар для ulugbek
Оффлайн
TATU
student
Сообщений: 13
+ 5  3/3
– 0  0/0

Uzbekistan
jovob topganizdan hursandman. sizga havasim kelyapti oldin savol keyin javobiniyam beras. qoyil

Последний раз редактировалось ulugbek; 16.01.2009 в 22:03.
Ответить 
"+" от:
Ответить
Опции темы
Опции просмотра




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Advertisement System V2.5 By Branden
OOO «Единый интегратор UZINFOCOM»


Новые 24 часа Кто на форуме Новички Поиск Кабинет Все прочитано Вверх