PDA

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



اوبالیت به بو
چهارشنبه 02 فروردین 1391, 14:32 عصر
درود بر هموطنان عزیز

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



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


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


DirectorySecurity DirSec = Directory.GetAccessControl(path);
DirSec.AddAccessRule(new FileSystemAccessRule(account, FileSystemRights.FullControl, AccessControlType.Allow));
Directory.SetAccessControl(path, DirSec);


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

اوبالیت به بو
پنج شنبه 03 فروردین 1391, 21:58 عصر
مساله در اینجاست که وقتی پوشه ای ساخته شد بعدها در برنامه از این پوشه استفاده میشه. یعنی کاربر فایل های خودش رو در این پوشه کپی می کنه. اما درهنگام آپلود فایل با خطای Access To Path ... Denide مواجه میشم.

A.S.Roma
پنج شنبه 03 فروردین 1391, 23:27 عصر
Account یوزری هست که قصد Write داره که میشه اکانت IIS . باید IIS_IUSRS یا چیزی شبیه این باشه.

اوبالیت به بو
جمعه 04 فروردین 1391, 23:07 عصر
من چطور می تونم پوشه در زمان اجرا ایجاد کنم و اجازه داشته باشم در اون فایل اپلود کنم؟

hesamsalehnamadi
جمعه 04 فروردین 1391, 23:50 عصر
من چطور می تونم پوشه در زمان اجرا ایجاد کنم و اجازه داشته باشم در اون فایل اپلود کنم؟

اینو بخون
http://www.codeproject.com/Articles/4017/Adding-File-Access-Permissions-using-DirectoryServ

اوبالیت به بو
شنبه 05 فروردین 1391, 13:37 عصر
اینو بخون
http://www.codeproject.com/Articles/4017/Adding-File-Access-Permissions-using-DirectoryServ
این مقاله رو خوندم.

اما مساله اینجاست من هنگام آپلود فایل در localhost با خطای Access to the path مواجه می شم در حالیکه در گذشته این مشکل رو نداشتم.

اوبالیت به بو
شنبه 05 فروردین 1391, 15:20 عصر
مشکل حل شد و ارتباطی با مجوز پوشه ایجاد شده نداشت. باید در هنگام آدرس دهی برای دستور FileUpload.SaveAs("") در انتهای مسیر عبارت FileUpload1.PostedFile.FileName رو اضافه می کردم که نکرده بودم.