PDA

View Full Version : فراخوانی کامل تابع API



rostamkhani
پنج شنبه 19 مهر 1386, 15:50 عصر
سلام
بنده میخوام با فراخوانی تابع API زیر یک Directory با یک دسترسی خاص تعریف کنم
یا چگونه میشه یک lpSecurityAttributes درست حسابی تعریف کرد



PublicDeclareFunction CreateDirectory Lib"kernel32"Alias"CreateDirectoryA" (ByVal lpPathName AsString, ByVal lpSecurityAttributes As SECURITY_ATTRIBUTES) AsLong




در واقع میخوام کار این کد تو .net رو در vb6 انجام بدم





string us = "administrator";
System.Security.AccessControl.DirectorySecurity a = new System.Security.AccessControl.DirectorySecurity();
FileSystemAccessRule ff = new System.Security.AccessControl.FileSystemAccessRule (us, FileSystemRights.ExecuteFile, AccessControlType.Allow);
FileSystemAccessRule ff2 = new System.Security.AccessControl.FileSystemAccessRule (us, FileSystemRights.Delete, AccessControlType.Allow);
FileSystemAccessRule ff3 = new System.Security.AccessControl.FileSystemAccessRule (us, FileSystemRights.CreateFiles, AccessControlType.Allow);
a.AddAccessRule(ff);
a.AddAccessRule(ff2);

Directory.CreateDirectory(@"C:\test", a);
//Directory.SetAccessControl(@"c:\test", a);

rostamkhani
شنبه 21 مهر 1386, 00:18 صبح
از دوستان هیچ کدوم با این تابع کار نکردن ؟

rostamkhani
دوشنبه 23 مهر 1386, 14:08 عصر
از بچه ها سایت هیچکس بلد نیست !؟
فک کنم تابع مهمی باشه حتما به درد همه میخوره برای امنیت برنامها و ...

Dr.Bronx
سه شنبه 24 مهر 1386, 00:30 صبح
نه والا
من کار نکردم
یه کم بیشتر توضیح بده در موردش من برم از دوستام بپرسم

rostamkhani
سه شنبه 24 مهر 1386, 15:06 عصر
خیلی ممنون از شما
این تایع API CreateDirectory دارای دوتا آرگومان که اولی(lpPathName) واضح است آدرس Directory که میخواهیم ایجاد بشه و دومی (lpSecurityAttributes)

Public Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type

یک type در vb6 که میتوانی با درست ساختن آن و ارسال به این تابع، Directory با دسترسی خاص داشته باشیم مثل فولدری که حذف نمیشه یا نمیتوان وارد شد یا نمیتوان چیزی را از داخلش Copy گرفت
کد .net که گزاشتم همین کارو انجام میده net هم برای ساخت یک directory با دسترسی خاص از همین تابع API و ساخت IpSecurityAttributes استفاده میکنه این مطلب رو بنده به وسیله Reflector و برسی کلاس Directory در دات نت فهمیدم

rostamkhani
شنبه 20 بهمن 1386, 14:58 عصر
آقا این بنده لازم داشتم اگه کسی کار کرده راهنمایی کنه یا سورسی بزاره ممنون میشم