PDA

View Full Version : قفل گزاری یا همون License گزاری..



ealireza
چهارشنبه 10 آبان 1385, 22:39 عصر
با سلام
اگه بعضی از کامپوننت ها رو دیده باشید یک فایل LICENSE با یک پسوند خاص دارند که در BIN کپی میشن .

حالا چطوری میشه همچین قفلی برای برنامه ASP.net درست کرد ؟

میدونم که باید دامین رو گرفت .
و هش کرد و 2 تا استرینگ رو با هم مقایسه کرد


لطفا در مورد این قضیه یک توضیح و مثال بزنید
مرسی

ealireza
پنج شنبه 11 آبان 1385, 11:27 صبح
کسی نبود راهنمایی کنه ؟

leG_big
پنج شنبه 11 آبان 1385, 11:41 صبح
سلام
بروتو سایت
codeproject.com
اونجا حتما هست
--------------------
راستی دوست عزیز ، شما به راحتی میتونید خودتون هم بنویسید ، کمی وقت می خواد

Behrouz_Rad
پنج شنبه 11 آبان 1385, 12:07 عصر
حقیقتا توضیحات در مورد ایجاد License برای کنترل های سرور، قدری پیچیده و خارج از حوصله است!
اما برای پیگیری باید بدونی که پنج کلاس در دات نت وجود دارند که وظیفه ی کار با License ها رو بر عهده دارن.
این کلاس ها در نیم اسپیس ComponentModel وجود دارند و شامل:
LicenseContext، LicenseException، LicenseManager، LicenseProviderAttribute و LicFileLicenseProvider هستند.
اصول کار بدین شکل است که یک KEY برای ServerControl در فایلی (معمولا با پسوند lic) ذخیره میشه. این Key رو با الگوریتمی همانند الگوریتم 64 بیتی که کلاس DESCryptoServiceProvider فراهم می کنه رمزگذاری می کنند و با استفاده از متدهای Validate یا IsValid کلاس پایه ی LicenseManager، این Key رو بازیابی می کنند.
این Key باید در برنامه هم تعریف بشه و با مقایسه ی این دو، به صحت اونها پی برد.

نام Domian هم برای زمانی هست که قصد داشته باشی Server Control رو تنها بر روی یک ماشین خاص اجرا کنی!

موفق باشید.

ealireza
پنج شنبه 11 آبان 1385, 16:50 عصر
جناب راد دامین اکتفا میکنه .
فقط چطوری یک فایل LIC باید ساخت ؟
برای کامپوننت نمیخام
برای یک برنامه .net هست
آیا مثالی دارید

ممنون

Behrouz_Rad
پنج شنبه 11 آبان 1385, 18:05 عصر
جناب راد دامین اکتفا میکنه .
دامین واسه چه چیزی اکتفا می کنه؟


فایل lic چیزی بیشتر از یک فایل با یک سری داده های رمزگذاری شده نیست!
می تونی این داده ها رو طبق الگوریتم اختراعی یا با استفاده از الگوریتم های رمزگذاری که همراه با NET. وجود دارند همانند MD5 یا DES رمزگذاری کنی.
به عنوان مثال، اگر بخوای یک کلید که یک عبارت مبنای 16 رو تولید می کنه با استفاده از الگوریتم DES تولید کنی:


private static readonly byte[] keyBytes =
new byte[] { 0x35, 0x46, 0x42, 0x32, 0x38, 0x31, 0x46, 0x36 };

که به عبارت 5FB281F6 میرسی.
فرضا این کلید تو میشه.
حال متغیری از نوع DESCryptoServiceProvider تعریف می کنی و keyBytes رو به خواص KEY و IV اون نسبت میدی.
از کلاس CryptoStream نیز می تونی برای ایجاد فایل (مثلا با پسوند lic) استفاده کنی.