PDA

View Full Version : سوال: قفل گذاری فولدری که برنامه ایجادش می کنه و می خونه



morteza271
شنبه 12 اردیبهشت 1388, 23:38 عصر
سلام به همگی...

چه چوری میشه فولدری که خود برنامه ایجادش می کنه، اطلاعاتو توش ذخیره

می کنه، می خونه و ... قفل گذاری کرد که قابل دسترسی برا کاربر نباشه...

لطفا کمکم کنین... ممنون.

adibadm
دوشنبه 14 اردیبهشت 1388, 00:11 صبح
سلام به فلدری که می خوایی قفل بشه این کد را به صورت پسوند اضافه کن

{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}
مثلا اسم فلدرت Test هستش باید به

Test.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}
تغییر پیدا کنه.

Nima NT
دوشنبه 14 اردیبهشت 1388, 00:20 صبح
راحت میشه دورش زد , بهتره از این روش استفاده نکنید ( البته اگر امنیتش زیاد مهم نیست میتونید استفاده کنید )

morteza271
دوشنبه 14 اردیبهشت 1388, 13:12 عصر
ممنونadibadm

پس می گین چیکار کنم؟

راستی برا کپی کردن فولدر تو سی شارپ چیکار باید کرد؟؟

Nima NT
دوشنبه 14 اردیبهشت 1388, 16:39 عصر
اگر اطلاعات درون این پوشه کد بشن فکر نکنم کسی بتونه به راحتی به اطلاعات درون اون پی ببرن , در ضمن چرا از بانک اطلاعاتی استفاده نمیکنید ؟

Sundown
دوشنبه 14 اردیبهشت 1388, 16:51 عصر
پیشنهاد من این هست که :
اول اگر محل فلدر مذکور مهم نیست فلدر یاد شده توی یک قسمت از پوشه های خود ویندوز ( یا هر جایی که که کسی نتونه به این راحتی پیداش کنه ) قرار دهید.
فایل هایی که قصد دارید از طریق برنامه به آنها دسترسی داشته باشید با یک پسوند خاص مثلا DLL ذخیره کنید و مهمتر از اون داخل فایل رو با یک سری از محتویات آشغال پر کنید و مثلا محتویات اصلی از خط 250 ( مثلا ) شروع بشه. این نظر من هست.
چند وقت پیش یک همچین برنامه ای نوشتم که یک سری از اطلاعات رو درون یک فایل ذخیره میکرد و چون مجبور بودم کاری کنم که کسی نتونه به اون ها دسترسی داشته باشه فایل رو توی فلدر سیستم 32 و با پسوند DLL ذخیره کردم و تا تونستم توی فایل آت و آشغال ریختم و محتویات رو در یک قسمت خاص از فایل ذخیره کردم. بعید میدونم کسی بتونه با این روش و به این راحتی به فایل و محتویاتش دسترسی داشته. باشه. این کار بهتر از این هست که فلدر رو قفل کنیم.
موفق باشید

NewFoxStudent
دوشنبه 14 اردیبهشت 1388, 22:13 عصر
توی فضای نام
System.Security.AccessControl
کلاسهای زیادی وجود داره که احتمالا بشه باهاشون این کار رو انجام داد

adibadm
دوشنبه 14 اردیبهشت 1388, 22:18 عصر
دوست عزیز فک نکنم راهی باشه که فلدر قفل بشه منظورم اینه که هر روشی رو به کار ببرید یه جوری باز می شه. شما بهتر هست بگید که چرا می خوایید فلدر قفل بشه تا شاید دوستان روش دیگی رو پیشنهاد کردن که دیگه لازم نباشه فلدر را قفل کنید.

morteza271
دوشنبه 14 اردیبهشت 1388, 23:18 عصر
چون برنامه بصورت کامل با یک فولدر واطلاعات ذخیره شده در اون کار می کنه،

باید کاربران بصورت عادی نتونن فایل های داخل فولدر مورد نظرو ببینه!

مثلا کد وپسورد کاربران (3-5کاربر) در داخل همین فولدر ذخیره میشن...

ویه سری اطلاعات از کاربران مثل اموال و حساب و کتابشون...

پیشنهاد دوستان چیه؟

از توجهتون کمال تشکرو دارم

NewFoxStudent
دوشنبه 14 اردیبهشت 1388, 23:43 عصر
پیشنهاد من اینه که اطلاعات داخل فایلهایی که توی این فولدر قرار میگیره با یه روش استاندارد کد بشه

morteza271
سه شنبه 15 اردیبهشت 1388, 00:25 صبح
بنظرم بانک اطلاعاتی روش بهتریه...

SQL خوبه؟ برا یادگیریش چه مرجعی سراغ دارین؟

راستی برا کپی فولدر تو سی شارپ چه می کنین؟
ممنون.

sd.CSharpProgrammer
سه شنبه 15 اردیبهشت 1388, 01:59 صبح
با سلام

یک روش جالب برای قفل کردن پوشه ها هست که من در آوردیه ولی جالبه!
شما بیا یک دیتابیس واسه برنامه ات درست کن. بعدش اطلاعات تمامی فایل های پوشه رو به صورت آرایه ای از بایت ها در دیتابیس ذخیره کن. مثلاً اگه فولدری به اسم test داری که 2 تا فایل توشن تو دیتابیس یه جدول تعریف کن که برای هر فایل دوتا فیلد به اسم نام و مسیر فایل و اطلاعات فایل بساز و اونارو در قالب آرایه ای از بایتهای فایل در دیتابیس ذخیره کن و روی دیتابیس هم پسورد بذار.
بعدش تو برنامه هر وقت احتیاج شد از اون فایل ها استفاده کنی اونارو از تو دیتابیس دربیار و تو یه پوشه موقت به اسم temp (یا هر اسم دیگه ای) رو دیسک ذخیره کن و بعد اینکه ازشون استفاده کردی هنگام بستن برنامه مجدداً اونارو پاک کن. (در حالی که یک نسخه پشتیبان از اونا تو دیتابیست داری)

شاید یکم مبهم بنظر بیاد ولی خیلی وقتا من ازش استفاده کردم و جواب داده
موفق باشی

mostafaaa
سه شنبه 15 اردیبهشت 1388, 10:23 صبح
سلام دوستان من
این روشی که در زیر براتون میزارم شاید خیلی امن نباشه ولی در موارد خاصی میتونی کار ساز باشه ، به این ترتیب کار میکنه که Permition های یک پوشه رو به وسیله این کدها تغییر میدیم تا کاربران به اون دسترسی نداشته باشند، بدیهیه که به همین راحتی هم یه کاربر حرفه ای میتونه این permition ها رو برداره.

private void AddDirectorySecurity(string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType)
{
DirectoryInfo Dinfo = new DirectoryInfo(FileName);
DirectorySecurity DSecurity = Dinfo.GetAccessControl();
DSecurity.AddAccessRule(new FileSystemAccessRule(Account, Rights, ControlType));
Dinfo.SetAccessControl(DSecurity);
}
private void RemoveDirectorySecurity(string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType)
{
DirectoryInfo Dinfo = new DirectoryInfo(FileName);
DirectorySecurity DSecurity = Dinfo.GetAccessControl();
DSecurity.RemoveAccessRule (new FileSystemAccessRule(Account, Rights, ControlType));
Dinfo.SetAccessControl(DSecurity);
}
و برای مثال روش استفاده :

AddDirectorySecurity("d:\\NewFolder", "Everyone", FileSystemRights.Read, AccessControlType.Deny);
یا علی

esmaeily-hosein
سه شنبه 15 اردیبهشت 1388, 10:30 صبح
تو اینجا هم یه روش هست آیا این روشو میشه دور زد :

http://www.trap17.com/index.php/best-way-lock-folder-without-using-application_t55662.html

ولی کلا داده هاتو رمز گزاری کنی از همه بهتره .

NewFoxStudent
سه شنبه 15 اردیبهشت 1388, 11:38 صبح
یه راه دیگه هم اینه که محتوی فایلهات رو به صورت باینری توی بانک ذخیره کنی و وقتی برنامه اجرا میشه از بانک بخونی و ایجادشون کنی و بعد از انجام عملیات دلخواهت و یا اتمام برنامه دوباره محتوی فایلهات رو با تغییرات اعمال شده به بانک منتقل کنی و بعد اصل فایل رو از بین ببری
این جوری فقط وقتی برنامه در حال اجراست فایلها وجود داره
البته ترکیب چند روش خیلی توی امنیت موثر

adibadm
چهارشنبه 16 اردیبهشت 1388, 01:36 صبح
به نظر من از rar و پسورد استفاده کن یعنی فایل ها رو با برنامت به صورت آرشیو رار پسورددار تبدیل کن و برای پسورد هم می تونی طبق یه فرمول خاص تعیینش کنی

amir.khanlari
دوشنبه 25 آبان 1388, 10:29 صبح
فرض کنید که می خواهیم فایل های پشتیبان بانک اطلاعاتی رو در یک پوشه ذخیره کنیم و کاربر نتونه غیر از محیط برنامه به اون پوشه دسترسی داشته باشه . چطور باید این کارو بکنم؟

refigh3
جمعه 29 آبان 1388, 10:12 صبح
این روشی که دوستمون adibadm (http://barnamenevis.org/forum/member.php?u=15408) گفتن سه سوت حک میشه که؟؟؟؟