PDA

View Full Version : strong name چیست؟



Leo_messi
جمعه 02 آذر 1386, 22:11 عصر
با سلام
من اطلاعاتی راجع به strong name در .net میخواستم (البته تو همین سایت یکسری مطلاب پیدا کردم ولی ناقص بود و مقاله هم دانلود نمی شد) اینکه چی هست و چه کارهایی انجام میدهد؟

PC2st
جمعه 02 آذر 1386, 23:00 عصر
strong name به معنای نامگذاری قوی است بطوریکه اسمبلی خود را بصورت قوی نامگذاری میکنید. در اینحالت، اسمبلی حاوی: اطلاعات شناسائی (عنوان اسمبلی، نسخه اسمبلی و culture) و حاوی یک کلید عمومی (public key) و حاوی یک امضای دیجیتالی (digital signature) خواهد بود. در واقع اسمبلی توسط اطلاعات شناسائی بعلاوه کلید عمومی و امضای دیجیتالی، بصورت قوی ای نامگذاری میشود.

اگر من یک اسمبلی رو ایجاد کرده و اون رو بصورت قوی نامگذاری کنم، سپس اگر شخص دیگه ای بخواد از اون اسمبلی استفاده کنه، اون شخص از طریق کلید عمومی و سایر مشخصاتی که همراه اسمبلی وجود داره، اطمینان حاصل میکنه که اون اسمبلی رو من نوشتم نه شخص دیگه ای. همچنین اسمبلی هائی که بصورت قوی نامگذاری شده اند، میتوانند در GAC قرار بگیرند که در اینصورت، چندین اسمبلی (هم نام ولی با نسخه های متفاوت) میتوانند در کنار یکدیگر قرار بگیرند که همین مورد باعث میشه که با مشکل DLL Hell روبرو نشید :-) و بتونید چندین نسخه متفاوت از یک اسمبلی رو در کنار هم بر روی یک سیستم داشته باشید و یک برنامه بتونه با یک نسخه مشخص از آن اسمبلی کار کنه.

Leo_messi
شنبه 03 آذر 1386, 21:21 عصر
میشه راه ساخت این کار رو بگید؟(چه جوری میشه این کار رو انجام داد)

PC2st
شنبه 03 آذر 1386, 22:33 عصر
برای اینکه یک اسمبلی را بتوان بصورت قوی نامگذاری کرد، باید یک جفت کلید داشته باشیم.
جفت کلیدی شامل کلید عمومی و کلید خصوصی، Public/Private Key Pairs

در دات نت از برنامه sn.exe برای ایجاد جفت کلید استفاده میشه که این برنامه را میتوان در مسیری (که NET Framework. نصب شده است) پیدا کرد.

برای ایجاد جفت کلید، دو راه پیش رو دارید:
+ استفاده از محیط گرافیکی ویژوال (Visual Studio .NET)
+ استفاده از sn.exe در Command Prompt و ایجاد فایل جفت کلید، سپس مشخص کردن آن توسط صفت AssemblyKeyFile

در اینجا اینکار را از طریق محیط ویژوال استودیو دات نت انجام میدیم:
+ پروژه ای که قصد دارید برای آن یک جفت کلید بسازید را توسط VS.NET باز کنید.
+ از پنجره Solution Explorer روی گزینه Properties (از پروژه مورد نظر) دو بار کلیک کنید.
+ روی زبانه Signing کلیک کنید.
+ گزینه Sign the assembly را انتخاب نمائید.
+ از جعبه بازشو (ComboBox) گزینه <...New> را انتخاب کنید.
+ در پنجره ظاهر شده، در اولین جعبه متنی (TextBox) یک نام را برای جفت کلید مشخص کنید.
+ گزینه Protect my key file with a password را از حالت انتخاب خارج کنید.
+ روی OK کلیک کنید تا با اینکار یک جفت کلید با پسوند snk.* به پروژه اضافه شود.
+ کار دیگری لازم نیست انجام دهید، هم اکنون اسمبلی بصورت قوی نامگذاری شده است.

PC2st
یک شنبه 04 آذر 1386, 00:52 صبح
فقط یک نکته تا یادم نرفته اینکه فایل جفت کلید باید پیش خودتون محفوظ بمونه و دیگر افراد نباید بهش دسترسی داشته باشند.

سار
سه شنبه 26 شهریور 1387, 09:19 صبح
ببخشید که این تاپیک رو بالا آوردم
من میخوام یک اسمبلی رو در Policy Assemblies اد کنم
من برای پروژه ی خودم مراحل بالا رو طی کردم و با موفقیت در Gac هم اد کردم ولی زمانی که میخوام در Policy Assemblies اد کنمش خطایی میده مبنی بر اینکه من strong name ندارم.
ممکنه راهنمایی کنید؟

khz-web1
دوشنبه 20 آبان 1387, 02:28 صبح
سلام...



بطوریکه اسمبلی خود را بصورت قوی نامگذاری میکنید


میشه یکم راجب خود اسمبلی توضیح بدید.... تا مضموم کاملتر باشه .....:لبخندساده:

با تشکر

tbasoft
چهارشنبه 30 اسفند 1391, 17:29 عصر
سلام دوستان خسته نباشید
راستش من می خوام یه فایل dll رو بعد از دیس اسمبل کردن سیو کنم اما میگه باید StrongNameRemove کنم؟
راستی شما در مورد StrongNameRemove چیزی میدونید؟
عیدتون هم مبارک