با سلام و تشکر از پاسختون.
در رابطه با این که باید سطح دسترسی برای یوزر داشته باشیم من خیلی سرچ کردم پاسخی که پیدا کردم توضیحاتی درباره ی asp.net configuration و تعریف یوزر و نقش و سطح دسترسی اون ها به دایرکتوری ها در ویزارد مرتبط با اون بود.اما مشکل این جاست که asp.net این اطلاعات رو در دیتابیسی که خودش میسازه و در پوشه app_data قرار میده ذخیره می کنه. اما من فقط می تونم یه دیتا بیس داشته باشم.آیا وقتی از این ویزارد استفاده می کنیم امکان این وجود داره که خودمون مشخص کنیم اطلاعات یوزر ها رو در دیتا بیس ما ذخیره کنه و یه دیتابیس جداگانه نسازه؟
یا اینکه اصلا این راه حل مساله نیست و خودم باید یه جدول برای یوزر ها در دیتابیسم تعریف کنم؟
واینکه فرمودید دیتا رو براساس دسترسی ها بخونم و نشون بدم رو نمیدونم چه طور میشه پیاده سازیش کنم.اگه یه نمونه بذارید ممنون میشم.
سلام
برای سطح دسترسی ، هم می تونید از سیستم خود asp.net استفاده کنین : تو گوگل asp.net authentication و asp.net authorization رو سرچ کنین
راه حل دوم ، استفاده از سشن است ، وقتی کاربر لاگین می کنه ، 2 تا سشن می سازین که توی اولی آی دی کاربر و توی دومی کد سطح دسترسیش رو در نظر می گیرین
مثلا :
کد:
session["UserLogin"]=myUid
session["UserLevel"] = myUlevel
حال در لود صفحه ای که قراره مقالات رو نشون بده ، می بایست اول وجود سشن با نام UserLogin رو چک کنین و در صورتی که سشن وجود داشت ، از داخل سشن UserLevel کد دسترسی کاربر رو بر می داریم و بر اساس اون و بوسیله تکنولوژِی ADO.NET یک کوئری رو روی دیتابیس اجرا می کنیم و اطلاعات رو درون صفحه نمایش می دهیم.
مثلا فرض کنین که برای یوزرهای معمولی کد دسترسی رو 1 و برای یوزرهای ویژه که حق عضویت دادن کد دسترسی 2 رو در نظر گرفته ایم.
حال وقتی مثلا یک کاربر ویژه با آی دی 6 در سیستم لاگین می کنه :
کد:
session["UserLogin"]=6
session["UserLevel"] = 2
حال در رویداد لود صفحه مقالات :
کد:
if (Session["UserLogin"] != null && Session["UserLevel"] != null)
{
int Ulevel = (int)Session["UserLevel"];
string query = "";
if (Ulevel == 1)
{
query = "SELECT Title,Pic FROM MyTable";
}
else if (Ulevel == 2)
{
query = "SELECT Title,Pic,Url FROM MyTable";
}
SqlConnection con = new SqlConnection("server=.;database:MyDatabase;Trusted_Connection:true");
SqlCommand cmd = new SqlCommand(query, con);
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
// در اینجا می تونین اطلاعات رو در یک گرید ویو بریزید
rdr.Close();
con.Close();
}
همانطور که می بینین ، اگر سطح دسترسی کاربر 1 باشه ، فقط عکس و عنوان مقالات رو درون صفحه میریزیم ، ولی اگر سطح کاربر 2 باشه ، عکس و عنوان و لینک دانبود مقاله رو درون صفحه قرار میدیم.
آموزش کدهای واکشی اطلاعات بوسیله ADO.NET رو می تونید از آدرس زیر مطالعه نمایید.
[h=2]
روش های واکشی اطلاعات از دیتابیس در asp.net[/h]
یا حق