در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

iran58

تعیین سطح دسترسی به کلیدهای یک صفحه در mvc

سلام

می خواهم برنامه ای طراحی کنم که کاربران به با توجه به سطح دسترسی که دارند به کلیدهای ثبت و ویرایش و حذف دسترسی داشته باشند

مثلا کاربر a به کلید ثبت - کاربر b به کلید ویرایش - کاربر c به کلید حذف - کاربر dبه کلید ثبت و ویرایش

لطفا راهنمای بفرمایید درسمت mvc چگونه باید این کار را انجام بدهم

درضمن از روش identity خود mvc هم استفاده نمی خواهم بکنم

اگر نمونه ای هم می توانید معرفی کنید

باتشکر

#سطح_دسترسی_user
لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.
رضا دبیری

سلام

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

در واقع شما حداقل یک جدول کاربران ایجاد می کنید و بعد از لاگ این شدن کاربر و ثبت اطلاعات اون در یک شی مثل کوکی هر بار نیاز داشتید دسترسی رو بررسی کنید با استفاده از صفت [Authorize] روی هر کنترل می توانید اول لاگ این بودن رو بررسی کنید و بعد با استفاده از شرطی مثل زیر کاربر خاص بودن و بررسی کنید. البته در نهایت توصیه می کنم simple member ship استفاده نکنید و مدیریت نقش ها رو هم به پروژه تون اضافه کنید.

if (User.Identity.name=="ali")
{
//do some ....
}else
{
}
یاسر احسانی

سلام دوست عزيز

يك روش همون استفاده از Identity 2.0 هست كه خودت هم بهش اشاره كردي . ولي روش سفارشي كه بتوني اين كار رو انجام بدي استفاده از Filter هاي سفارشي هست .

براي اين كار لازمه شما يه كلاس تعريف بكني و كلاس AuthorizeAttribute ارث بري كني . و بعد از اين فيلتر، تو controller و بالاي هر Action اي استفاده كني .

موفق باشي.

آرام باش! تفكر كن، توكل كن. سپس آستين ها را بالا بزن، آنگاه دستان خدا را ميبيني كه قبل از تو دست به كار شده اند . امام علي (ع)
iran58

سلام

مهندس احساني نمونه کدی دارید

باتشکر

یاسر احسانی

سلام دوست عزيز

1- يك كلاس جديد ايجاد كنيد و كد زير را در آن Past كنيد .

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using DAL;

namespace test
{
    public class CustomAuthorizeAttribute : AuthorizeAttribute
    {
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            if (httpContext == null)
                throw new ArgumentNullException("httpContext");

            var user = new UsersContext().GetUser(httpContext.User.Identity.Name);
            if (!httpContext.User.Identity.IsAuthenticated)
                return false;


            // بررسي دسترسي كاربر 
            // اگر بلي => return true
            // اگر خير => return false;
           
        }

        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            if (filterContext.HttpContext.Request.IsAuthenticated)
            {
                filterContext.Result = new HttpStatusCodeResult(403);
                return;
            }

            base.HandleUnauthorizedRequest(filterContext);
        }
    }
}

2- از اين فيلتر با در كنترلر ها استفاده كنيد !.

موفق باشيد .

آرام باش! تفكر كن، توكل كن. سپس آستين ها را بالا بزن، آنگاه دستان خدا را ميبيني كه قبل از تو دست به كار شده اند . امام علي (ع)
پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....