PDA

View Full Version : چگونه با توجه به نوع کاربری اعتبارسنجی سفارشی انجام دهیم



bitcob589
دوشنبه 26 اسفند 1392, 09:14 صبح
با سلام
در پروژه خود چند گروه کاربری وجود دارد مدیر سایت ---مدیر ارشد---کاربر ساده در نظر دارم با توجه به نوع کاربران اعتبار سنجی سفارشی نوشته شود تا زمانی کاربر اطلاعات خود را در نظر دارد در دیتابیس وارد کند با استفاده از اعتبار سنجی سفارشی صحت اطلاعات مورد بررسی قرار داد
چگونه می توان با توجه به نوع کاربر اعتبار سنجی خاصی اعمال کرد بر فرض مثال مدیر بتواند در یک فیلد هر متنی مد نظر داشت بتواند در آن ذخیره کند اما مدیر ارشد بتواند آن را بدون وارد متن در فیلد رها کند و کاربر معمولی موظف به نوشتن فقط عدد در آن باشد یعنی با توجه به نوع کاربر اعتبار سنجی سفارشی خاصی اعمال شود

مهدی کرامتی
دوشنبه 26 اسفند 1392, 09:34 صبح
باید یک Custom Role Provider بنویسید و از آن در پروژه استفاده کنید. در این صورت می توانید صفت Authorize را به این صورت استفاده کنید:

[Authorize(Roles="Admin,Moderator")]

و یا در کدتان برای اینکه ببینید کاربر کنونی مثلا Admin هست یا نه:

if(User.HasRole("Admin") ...

bitcob589
دوشنبه 26 اسفند 1392, 10:54 صبح
چگونه (
مدیر سایت ---مدیر ارشد---کاربر ساده) اعتبار سنجی سفارشی جدا گانه بنویسم




[Authorize(Roles="Admin")]public ActionResult About()
{
...........
..............
return View();

}

مهدی کرامتی
دوشنبه 26 اسفند 1392, 10:57 صبح
اعتبارسنجی جدا نیاز نیست. همگی از صفحه Login وارد می شوند، اما سطح دسترسی متفاوتی بر حسب Role شان دارند.

bitcob589
دوشنبه 26 اسفند 1392, 12:10 عصر
چگونه در زمانی که کاربر جز یکی از رولهای نمی باشد به کاربر پیام اخطار نمایش داده شود

[Authorize(Roles="Admin,Moderator")]

if(User.HasRole("Admin")

Dr.Bronx
دوشنبه 26 اسفند 1392, 13:32 عصر
if(!User.HasRole("Admin"))
{
return new HttpStatusCodeResult(HttpStatusCode.Forbidden);
}

مهدی کرامتی
دوشنبه 26 اسفند 1392, 14:09 عصر
چگونه در زمانی که کاربر جز یکی از رولهای نمی باشد به کاربر پیام اخطار نمایش داده شود

[Authorize(Roles="Admin,Moderator")]

if(User.HasRole("Admin")
اگر کاربر Role مورد نظر را نداشته باشد خود سیستم Membership به صورت خودکار ایشان را به صفحه لاگین هدایت می کند تا با نام کاربری دارای دسترسی مورد نیاز لاگین کند.