PDA

View Full Version : اعطای مجوز دسترسی به پوشه ساخته شده در زمان اجرا



اوبالیت به بو
پنج شنبه 03 فروردین 1391, 21:57 عصر
درود بر هموطنان عزیز

بوسیله کد زیر پوشه ای رو می سازم:


1
2
3
4
if (!Directory.Exists(path))
{ Directory.CreateDirectory(path);
}





و طبیعتا نمی توان هیچ فایلی را در این پوشه ریخت زیرا دارای مجوز ReadOnly می باشد. حالا در Overload دوم متد CreateDirectory گزینه ای با نام DirectorySecuity وجود داره که با اعطای دسترسی FullControl می توان فایلی را در پوشه ایجاد شده ذخیره نمود. ساختار DirectorySecurity به این شکل است:

1
2
3
4
DirectorySecurity DirSec = Directory.GetAccessControl(path);
DirSec.AddAccessRule(new FileSystemAccessRule(<b>account</b>, FileSystemRights.FullControl, AccessControlType.Allow));
Directory.SetAccessControl(path, DirSec);








حالا سوال من در قسمت account می باشد که مقداردهی آن الزامی نیز هست. در این قسمت چه مقداری باید قرار داده شود؟

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

رافعی مهدی
جمعه 04 فروردین 1391, 00:45 صبح
درود بر شما

با اجرای تکه کد زیر، یک پوشه در درایو C ساخته میشود. همچنین یک فایل تکست ساده در این پوشه ایجاد شده و متن دلخواهی در آن نوشته میشود.


string path = @"C:\Sample\";

if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);

FileStream stream = new FileStream(path + "Sample File.txt", FileMode.Create);

byte[] data = Encoding.Unicode.GetBytes("Sample Text!");
stream.Write(data, 0, data.Length);

stream.Close();
}

موفق باشید.

اوبالیت به بو
جمعه 04 فروردین 1391, 23:06 عصر
درود بر شما

مساله اینجاست که پس از ساخت پوشه در سرور یا هاست اجازه ارسال یا کپی فایل داده نمی شود.

lvlaziar
شنبه 05 فروردین 1391, 07:53 صبح
درود بر شما

مساله اینجاست که پس از ساخت پوشه در سرور یا هاست اجازه ارسال یا کپی فایل داده نمی شود.
اگه اشتباه نکرده نباشم این ب خاطر بسته بودن درایو C شماست!
باس برنامه رو run as admin کنید تا اجازه دسترسیو ب این درایو و عملیات بعدی مثله کپی.... ب شما بده!

S.Reza
شنبه 05 فروردین 1391, 12:09 عصر
درود بر هموطنان عزیز

بوسیله کد زیر پوشه ای رو می سازم:


1
2
3
4
if (!Directory.Exists(path))
{ Directory.CreateDirectory(path);
}





و طبیعتا نمی توان هیچ فایلی را در این پوشه ریخت زیرا دارای مجوز ReadOnly می باشد. حالا در Overload دوم متد CreateDirectory گزینه ای با نام DirectorySecuity وجود داره که با اعطای دسترسی FullControl می توان فایلی را در پوشه ایجاد شده ذخیره نمود. ساختار DirectorySecurity به این شکل است:

1
2
3
4
DirectorySecurity DirSec = Directory.GetAccessControl(path);
DirSec.AddAccessRule(new FileSystemAccessRule(<b>account</b>, FileSystemRights.FullControl, AccessControlType.Allow));
Directory.SetAccessControl(path, DirSec);








حالا سوال من در قسمت account می باشد که مقداردهی آن الزامی نیز هست. در این قسمت چه مقداری باید قرار داده شود؟

وقتی پوشه ای رو می سازم اجازه کپی کردن فایلی در اون پوشه را ندارم. می خواهم این مشکل از بین برود.
در قسمت account باید اسم کامپیوتر ( یوزر ) که قرار است بر روی فایل تغییراتی ایجاد کند نوشته شود

parnia77
چهارشنبه 19 تیر 1392, 11:34 صبح
"Authenticated Users"

parnia77
چهارشنبه 19 تیر 1392, 11:40 صبح
"Authenticated Users"