PDA

View Full Version : تعيين سطح دسترسي يك فايل



msh_gold
شنبه 11 آبان 1392, 11:33 صبح
با سلام و عرض تشكر از كليه دوستاني كه وقت ميزارن و به تاپيك هاي ما مبتدي ها جواب ميدن من يه فايلي دارم توي شبكه كه داخل پوشه شير شده است از داخل برنامم اونو باز مي كنم مي خوام وقتي كه يه كاربر اونو باز كرده كاربر ديگر نتونه اونو باز كنه و بهش بگه كه كسي ديگه اي داره اونو ويرايش ميكنه دوستان اگه كمك كنن ممنون ميشم

ehsanvb
شنبه 11 آبان 1392, 15:11 عصر
سلام

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

بعد توسط کد زیر موقع اتصال یک نفر به آن خصوصیات اون پوشه ای رو که نمیتونه بنویسه و بخونه رو کپی کن به پوشه ای که داره روش کار میشه

به این ترتیب دیگه کسی نمیتونه تغییرش بده تا زمانی که دوباره خودت دسترسی کامل رو توسط همین کده از پوشه ای که دسترسی کامل داره کپی کنی به پوشه اصلی

کد اصلی :
Private Sub match_folder_security(ByVal from_folder As String, ByVal to_folder As String, ByVal inherit As Boolean)

Dim from_folder_info As New DirectoryInfo(from_folder)

Dim to_folder_info As New DirectoryInfo(to_folder)

Dim fromfoldersecurity As DirectorySecurity = from_folder_info.GetAccessControl(AccessControlSec tions.Access)

Dim from_sddlform As String = fromfoldersecurity.GetSecurityDescriptorSddlForm(A ccessControlSections.Access)

Dim tofoldersecurity As New DirectorySecurity

tofoldersecurity.SetSecurityDescriptorSddlForm(fro m_sddlform, AccessControlSections.Access)

If inherit.Equals(True) Then
tofoldersecurity.SetAccessRuleProtection(False, False)
ElseIf inherit.Equals(False) Then
tofoldersecurity.SetAccessRuleProtection(True, True)
End If

to_folder_info.SetAccessControl(tofoldersecurity)

End Sub

کدی که توسط آن میتونی خاصیت پوشه ها رو کپی کنی :

match_folder_security("\\192.168.5.123\eh\Poshe_adame_dastresi", "\\192.168.5.123\eh\Poshe_Asli", True)

msh_gold
یک شنبه 12 آبان 1392, 06:50 صبح
ممنون از پاسخي كه داديد جناب ehsanvb ولي من بيشتر توضيح بدم ببينيد من يه فايل اكسل دارم كه نمي خوام همزمان دو تا كاربر اونو ويرايش كنن اين فايل رو با كد prosess از داخل پوشه شير شده اجرا مي كنم و كاربر ويرايشو انجام ميده موقع بستن اين فايل من اين كد خاصيت پوشه ها رو كجا بنويسم تا اعمال بشه

ehsanvb
یک شنبه 12 آبان 1392, 14:03 عصر
ممنون از پاسخي كه داديد جناب ehsanvb ولي من بيشتر توضيح بدم ببينيد من يه فايل اكسل دارم كه نمي خوام همزمان دو تا كاربر اونو ويرايش كنن اين فايل رو با كد prosess از داخل پوشه شير شده اجرا مي كنم و كاربر ويرايشو انجام ميده موقع بستن اين فايل من اين كد خاصيت پوشه ها رو كجا بنويسم تا اعمال بشه

برای اینکاری میتونی به این ترتیب عمل کنی:

یک ستون در فایل اکسلت باز کن ، بعدا بلافاصله بعد از اینکه کسی به آن جهت ویرایش متصل شد این ستون را یک کن و بعد از اتمام ویرایش آنرا صفر کن، در برنامت قبل از اینکه فایل اکسل را برای ویرایش باز کنی چک کن ببین این ستون یک هست یا صفر، اگر یک بود یعنی کسی در حال ویرایش آن است و اجازه ویرایش نده و اگر صفر بود یعنی فایل آزاد است.

امیدوارم بدردت بخوره