PDA

View Full Version : سوال: راه مناسب برای دادن مجوز به کاربران نرم افزار



nilmil_nil
جمعه 02 مرداد 1388, 23:48 عصر
سلام
یه راه مناسب برای پرمیشن دادن به یوزر های تعریف شده
مثلا در یک نرم افزار حسابداری دسترسی کاربران به قسمت های برنامه محدود شود
ممنون میشم اگه پاسخ سوالم رو بدید دوستان:چشمک:

RED-C0DE
شنبه 03 مرداد 1388, 12:05 عصر
سلام
یه راه مناسب برای پرمیشن دادن به یوزر های تعریف شده
مثلا در یک نرم افزار حسابداری دسترسی کاربران به قسمت های برنامه محدود شود
ممنون میشم اگه پاسخ سوالم رو بدید دوستان:چشمک:
با این روش ساده هم می شه :
می تونی کاربری ک Login می کنه رو نگه داری مشخصاتش رو :مثلا نام و نوع کاربری(معمولی و مدیر) ...
فرمهایی ک می خوای محدودیت و مجوزها (Permission) رو بذاری (بسته ب نوع کاربر)، می تونی ب سازنده فرم مورد نظر، کاربری ک مشخصاتش رو نگه داشتی (کاربر Login شده) پاس بدی و در سازنده فرم، بررسی کنی نوع کاربر رو و محدودیتها رو بذاری..

نمونه کد:
کلاس کاربر :

public class clsUser
{
public enum enmUserType
{
NormalUser,
AdminUser
}

public string Name { get; private set; }
public enmUserType UserType { get;private set; }

public clsUser(string pName,enmUserType pUserType)
{
Name = pName;
UserType = pUserType;
}
}


کلاس فرم 2 ک باید هنگام باز کردن این فرم، امکان افزودن و ویرایش و حذف، برای کاربر معمولی وجود نداشته باشه :

public partial class Form2 : Form
{
public Form2(clsUser pUser)
{
InitializeComponent();

set_Permission(pUser);
}

private void set_Permission(clsUser pUser)
{
switch (pUser.UserType)
{
case clsUser.enmUserType.NormalUser:
//give User privilege
btnEdit.Hide();
btnAdd.Hide();
btnDelete.Hide();
break;
case clsUser.enmUserType.AdminUser:
//give Admin privilege
break;
}
}
}

کلاس فرم1 ک از اینجا فرم2 فراخوانی می شه(فرض شده ک کاربر Login شده رو قبلا ی جا ثبت کردیم و از اینجا بهش دسترسی داریم ، ب نام loggedinUser) :

private void button1_Click(object sender, EventArgs e)
{
loggedinUserNormal = new clsUser("NormalUser1", clsUser.enmUserType.NormalUser);
Form2 frm2 = new Form2(loggedinUserNormal);
frm2.Show();
}

Unknownlive
شنبه 03 مرداد 1388, 12:34 عصر
می تونی از کلاس های Encoder,Decoder برای رمز نگراری و رمز گشای اطلاعات مجوز ها(ثبت) استفاده کنی و یا از فایل های XML استفاده کنی

seven7777777
شنبه 03 مرداد 1388, 22:46 عصر
خوب معمولا مجوزهای یه فرد رو در دیتابیس نگه داری می کنند . به این صورت که در یک جدول اطلاعاتی شامل گروه ، مجوزها رو قرار می دن . مثلا در جدول داریم گروه مدیر با مجوزهای نوشتن ، خواندن ، تغییر - گروه کارمندان با مجوزهای نوشتن ، خواندن - گروه کاربران با مجوز خواندن .

بعد در جدولی دیگر هر فرد ثبت شده در برنامه رو با یک گروه ربط می دی مثلا مهدی از گروه مدیران - حسن از گروه کارمندان و ...

در نهایت در برنامه به راحتی به چک کردن مجوزهای مربوط به هر فرد از دیتابیس ، می تونی دسترسیشو به قسمت های خاص لغو کنی که برای این کار هم راه های زیادی وجود داره .

nilmil_nil
شنبه 03 مرداد 1388, 23:42 عصر
مرسی واقا کمکتون کارم رو راه انداخت

Unknownlive
یک شنبه 04 مرداد 1388, 09:56 صبح
من با بودن اطلاعات در بانک موافق نیستم به شرط اینکه ابتدا بانک SQL باشه ئ همچنین مجوز های SQL را بدونید و بلد با شید و بانک را تنها برای این کار قرار ندهید مگر به علت های دیگر از بانک استفاده می کنید

seven7777777
دوشنبه 05 مرداد 1388, 08:03 صبح
البته منظور من مجوزهای داخل SQL نبود . منظور من مجوزهایی هستند که در برنامه شما تعریف می کنید مثلا مجوز تعریف کاربران جدید ، مجوز دسترسی به فرم های یک و چهار ، مجوز نوشتن و تغییر مطالب و ...

در مورد اینکه بانک فقط به خاطر مجوزها ایجاد بشه هم نظر من اینه که الان دیگه کوچک ترین برنامه ها هم بانک اطلاعاتی دارن ، در ضمن برنامه ای که بانک نداره دیگه مجوز واسه کجاش می خواد یعنی اطلاعاتی نداره که بخواد با مجوز دسترسی یا عدم دسترسی به اونها رو کنترل کنه .

Unknownlive
دوشنبه 05 مرداد 1388, 09:21 صبح
جناب 7... اولا این که برنامه اگر بانک نداره صفحه ورود می خواهد باری چی را کار نداریم دوما مجوز های SQL هم خیلی مهمه و ارتباط مستقیم داره زیرا اگه شما اطلاعات کاربری را در آن ریختید ولی SQL را ایمن نکنید هر بچه ای هم میره اطلاعات را می خونه مثل گاوصندوقی می مونه که در آن پول بزارید اما در ان را نبندید خوب این چه امنیتیه ؟!!!

azam2005
یک شنبه 17 اردیبهشت 1391, 18:17 عصر
با سلام
اگر بخواهید روی سطر های خاص هم مجوز دهید چکار می کنید؟
مثلا اگر بخواهید یک کاربر پس از ورود به سایت امکان ویرایش - مشاهده - حذف و ... رکوردهای خاصی را داشته باشد مثلا :

1-همه رکورد های یک جدول را
2- رکوردهایی که خودش ثبت کرده
3-رکوردهای که پرسنل ثبت کرده
4- رکوردهایی که همکار ثبت کرده و ...