PDA

View Full Version : تاپيك آموزش امكانات Security در Net.



Xcalivorse
چهارشنبه 17 تیر 1388, 22:40 عصر
با سلام خدمت همه عزيزان.
اين روزها سايت برنامه نويس پر شده از انواع سوالات تكراري و متاسفانه كمتر ديده ميشه كه اعضاي اين فروم تاپيك هاي آموزشي درست كنند. و اغلب همه در فكر سوال كردن و حل كردن مشكل خودشونن.

دوستان من با راه اندازي اين تاپيك قصد دارم يكي از شاخه هاي مهم دات نت كه متاسفانه با فقدان شديد منبع فارسي مواجه هست رو معرفي كنم و از تمام دوستان بزرگوار خواهش ميكنم در صورتي كه هر منبعي در رابطه با اين موضوع دارند در اين تاپيك ارائه بدند تا همه از مطالب مفيدشون استفاده كنند.

اميد وارم همه در اين راه كمك كنند و اين تاپيك ادامه پيدا كنه.
با تشكر از شما عزيزان

ذكات علم آموختن آن است.

Xcalivorse
چهارشنبه 17 تیر 1388, 22:44 عصر
براي شروع كلاس DirectorySecurity رو معرفي مي كنم. اين كلاس براي اعمال محمدوديت در اعمال انجام شده توسط كاربران روي فولدر هاي مختلف هست. مثلا اگر ميخواهيد فولدر مورد نظرتون هيچ وقت پاك يا خوانده نشه يا تغيير داده نشه يا .... ميتونيد از اين كلاس استفاده كنيد.



using System.Security.Principal;
using System.Security.AccessControl;
using System.IO;




DirectorySecurity DirSec = new DirectorySecurity();
DirectoryInfo DirInfo = new DirectoryInfo(@"C:\ProgramingRef");

FileSystemAccessRule FileSysAccess = new
FileSystemAccessRule(WindowsIdentity.GetCurrent(). Name.ToString(),
FileSystemRights.Read, AccessControlType.Deny);

DirSec.SetAccessRule(FileSysAccess);
DirInfo.SetAccessControl(DirSec);

Xcalivorse
چهارشنبه 17 تیر 1388, 22:52 عصر
كلاس FileSystemAccessRule كلاسي براي تعيين محدوديت هاي مورد نظر ميباشد.

FileSystemAccessRule(WindowsIdentity.GetCurrent(). Name.ToString(),
FileSystemRights.Read, AccessControlType.Deny);


آرگومان اول تابع سازنده اين كلاس براي تعيين نام كاربري است كه مي خواهيم براي وي محدوديت تعيين كنيم و محدوديت وي را به فولدر مورد نظر محدود كنيم.
براي گرفتن نام كاربر جاري به صورت كامل از كلاس WindowsIdentity واقع در فضاي نام System.Security.Principal استفاده كرده ام.
البته ميتوان نام را به صورت ComputerName\UserName به تابع فرستاد. براي مثال در صورتي كه نام كامپيوتر ما SafeSoft باشد و كاربر مورد نظر ما Administrator باشد مي توان عبارت "SafeSoft\Administrator" را به عنوان آرگومان اول به تابع سازنده اين كلاس فرستاد.

آرگومان بعدي نوع محدوديتي است كه ميبايستي تعيين شود. براي اين منظور ميتوان از Enum تعريف شده براي اين منظور استفاده كرد يعني FileSystemRights.
كه شامل اجزايي چون Read, Write , Delete و ... مي باشد. در صورتي كه مي خواهيد به كاربري مجور خواندن را اعطا كرده يا از او بگيريد بايد از FileSystemRights.Read استفاده كرد.(مانند مثال فوق)

آخرين آرگومان براي تعيين اين مطلب است كه مجوز تعيين شده مثلا FileSystemRights.Read بايد به كاربر اعطا شود يا از او گرفته شود. در صورتي كه قصد اعطا مجوز را داريد AccessControlType.Deny و در صورتي كه قصد گرفتن مجوز را داريد AccessControlType.Allow را به عنوان آرگومان انتخاب كنيد

Xcalivorse
چهارشنبه 17 تیر 1388, 23:01 عصر
مثال اعطاي مجوز خواندن (Read) به كاربر.


using System.Security.Principal;
using System.Security.AccessControl;
using System.IO;




DirectorySecurity DirSec = newDirectorySecurity();
DirectoryInfo DirInfo = newDirectoryInfo(@"C:\ProgramingRef");

FileSystemAccessRule FileSysAccess = new
FileSystemAccessRule(WindowsIdentity.GetCurrent(). Name.ToString(),
FileSystemRights.Read, AccessControlType.Allow);

DirSec.SetAccessRule(FileSysAccess);
DirInfo.SetAccessControl(DirSec);

Xcalivorse
چهارشنبه 17 تیر 1388, 23:08 عصر
ايجاد محدوديت دسترسي براي فايلها



using System.Security.Principal;
using System.Security.AccessControl;
using System.IO;




FileSecurity FileSec = new FileSecurity();
FileInfo FileInfo1 = new FileInfo(@"C:\Mypic.bmp");
FileSystemAccessRule FileSysAccess = new
FileSystemAccessRule(WindowsIdentity.GetCurrent(). Name.ToString(),
FileSystemRights.Read, AccessControlType.Deny);
FileSec.SetAccessRule(FileSysAccess);
FileInfo1.SetAccessControl(FileSec);

Xcalivorse
چهارشنبه 17 تیر 1388, 23:20 عصر
استفاده از آلگوريتم MD5
اين آلگوريتم يك آلگوريتم دقيق و قابل اطمينان با يك منطق رياضي نوين هست. و به ازاي هر رشته اي كه به آن داده شود يك كد 16 بايتي به كاربر ميدهد. طول رشته داده شده فرقي ندارد و مي تواند بين 1 تا بي نهايت كراكتر باشد.
مورد استفاده اين آلگوريتم براي ذخيره پسوردهاي امنيتي كاربران در بانك هاي اطلاعاتي و فايلهاست. چرا كه اين آلگوريتم به گونه اي طراحي شده كه به هيچ عنوان نميتوان از كد 16 بايتي به رشته اصلي دسترسي داشت.


using System;
using System.Text;
using System.Security.Cryptography;



public string EncodePassword(string originalPassword)
{
//Declarations
Byte[] originalBytes;
Byte[] encodedBytes;
MD5 md5;

//Instantiate MD5CryptoServiceProvider, get bytes for original password and compute hash (encoded password)
md5 = new MD5CryptoServiceProvider();
originalBytes = ASCIIEncoding.Default.GetBytes(originalPassword);
encodedBytes = md5.ComputeHash(originalBytes);

//Convert encoded bytes back to a 'readable' string
return BitConverter.ToString(encodedBytes);
}

Xcalivorse
شنبه 05 شهریور 1390, 18:48 عصر
دوستان اگر اطلاعاتی دارن بیان و به اشتراک بذارن.