نمایش نتایج 1 تا 8 از 8

نام تاپیک: محدود کردن دسترسی به صفحات

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1386
    پست
    45

    محدود کردن دسترسی به صفحات

    با سلام دوستان
    محدود کردن دسترسی به پوشه ها و فایل ها با استفاده از role ها و تنضیمات در webconfig انجام پذیر است اما برای محدود کردن دسترسی به تک تک فایل ها باید برای هر فایل(صفحه) بطور مجزا در webconfig کد نوشت مثلا
    <location path="Page1.aspx">
    <system.web>
    <authorization>
    <allow roles="Admin>
    <deny users="*" />
    </authorization>
    </system.web>
    </location>
    یعنی برای هر صفحه باید چنین کدی نوشت؟ منظور محدودیت دسترسی به هر صفحه مد نظر است و دسته بندی صفحات در پوشه ها و محدود کردن پوشه ها صفحاتش مد نظر نیست.
    اگر تعداد صفحات زیاد باشد این روش درست است یا راه دیگری وجود دارد

  2. #2
    کاربر دائمی آواتار mp2009
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    فارس - بوشهر
    پست
    499
    میتونی توی page loud هر صفحه این کد رو بنویسی تا کاربر نتونه صفحه رو ببینه


    if (Page.User.Identity.IsAuthenticated)
    {
    // Some Code


    }
    else

    Response.Redirect("~/users/login.aspx");
    }

  3. #3
    اگه بخواد تو Page Load هر صفحه بگذاره که از راه اول بدتره !!!

    دوست عزیز چند تا کار میشه انجام داد :
    1- اگر از مستر پیج استفاده می کنید خیلی ساده یک شرط مثل شرطی که دوستمون گفتن مینویسید که نام صفحه رو از Url دریافت می کنه و چک می کنه که آیا این صفحه مجوز داره یا خیر
    2- میتونید همین کار رو در Global.asax انجام بدید مثلا در رویداد Application_BeginRequest
    3- اگه بتونید از UserControl ها استفاده کنید که کارتون خیلی راحت میشه قبل از لود کنترل چک کنید که آیا این کنترل مجوز لود شدن دارد یا خیر

    موفق باشید

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1386
    پست
    45
    ممنون nazaninam من زیاد وارد نیستم یه چیزایی فهمیدم باید بیشتر کار کنم پس تنظیمات webconfig میره کنار .بیشتر بگم یک user تعیین هویت میشه بعد ما مثلا 50 تا webpage داریم این user مثلا به 5 تا از این صفحات اجازه دسترسی داره با این حساب دسترسی به این صفحات باید تو بانک برای هر user ذخیره بشه وبا توجه به توضیح شما زمان دیدن صفحات چک بشه .درست فهمیدم؟؟ اگر ممکنه بیشتر راهنمایی بفرمایید ممنون

  5. #5
    بگذار یکم بازش کنیم !
    شما برای هر کاربر یک Field به بانک اضافه کنید به نام مثلا UserRole ، توی این فیلد سطوح دسترسی هر کاربر مشخص میشه مثلا سطح دسترسی من اینه : "User|Admin|Security" در حقیقت من 3 تا نقش دارم که هر کدوم با یک Spliter جدا شده ....
    خوب قدم دوم اینه که یک لیست از صفحاتی درست کنی که برای دسترسی به اونا سطح دسترسی لازمه باسه این که یک جدول درست کن توی یک فیلد نام صفحه داخل فیلد دوم سطح دسترسی مورد نظر رو وارد کن مثلا برای صفحه MyPage.aspx سطح دسترسی Admin لازمه .

    خوب بریم سراغ UI ، در صفحه مثلا مسترپیج میای اسم صفحه رو دریافت می کنی ( از متد Request.Url با کمی تغییر میتونی برای این کار استفاده کنی )
    بعد چک می کنی که آیا این صفحه جزو اون صفحه های محدود شده هست یا نه !
    اگه نبود که اصلا کاری بهش ندارم !
    اگر جزو اون لیست بود حالا سطح دسترسی که باسه اون صفحه تعیین شده رو از بانک دریافت می کنی .
    میریم سراغ کاربر ، اگر کاربر لاگین نکرده بود که واضحه میفرستیمش به صفحه لاگین !
    اگر لاگین کرده بود از متد User.IsInRole استفاده می کنیم ، در صورتی که مقدار True برگشت کاربر سطح دسترسی لازم رو داره !
    در غیر این صورت به صفحه پیام عدم سطح دسترسی هدایتش کن .

    چیزی که مونده مدیریت Role هاست ، فکر کنم بلد باشی چطور با Roles کار کنی اگر بلد نیستی بگو اونم توضیح بدم
    موفق باشید

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1386
    پست
    45
    اگر در مورد Roleها هم توضیح بدی عالیه .یک سوال جور دیگه توی یک سایت تعدادی کالا داریم با مدلهای مختلف هر مدل یک صفحه خاص خودشو داره حالا user یک مدل وارد میکنه مثلا مدل x100 حال میخایم فقط به صفحه مدل x100 دسترسی داشته باشه فکر میکنید باید برای هر مدل یک Role تعریف بشه (کاربر یک مشتریه که قبلا این مدلو با سریال منحصر بفرد خریداری کرده) یعنی Role کاربر ارتباط داره به مدلهایی که از کالاها خریداری کرده و دسته بندی خاصی برای یک Role وجود نداره فقط دسترسی به یک صفحه با توجه به یک مدل مهمه
    واقعا ممنون میشم اگر راهنمایی حتی جزیی بکنید

  7. #7
    کاربر تازه وارد آواتار E_Zabihi
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    یک دو سه تا کوچه ز تو دورتر
    پست
    59
    ببینید دوستان ، تقریبا (بجز چند مورد خاص) دیگه چک کردن امنیت با روش page base منسوخ شده و بجای اون از روش role based استفاده می کنن . توی asp.net2 خود مایکروسافت زحمت همه این کارها رو کشیده و تمام کنترل های لازم رو هم اورده ، فقط کافیه با تنظیمات web.config اونها رو استفاده کنی . برای اطلاعات بیشتر هم لینک زیر رو ببینید :
    http://aspnet.4guysfromrolla.com/articles/120705-1.aspx
    در مورد مدل های کالا هم باید بگم می تونی اینکار رو کنی که برای هر کاربر یه profile attribute مثلا به اسم AuthorizedModels اضافه کنی و مدل هایی رو که کاربر می تونه ببینه توی اون لیست کنی ، هنگام چک کردن مجوز دسترسی هم ، مثلا توی یه user control مربوط به نمایش مدل ها ، این رو چک کنی و یا توی master page و یا حتی می تونی صفحه مدل ها رو از یک صفحه پدر به ارث ببری و توی صفحه پدر این چکینک ها رو انجام بدی ...

  8. #8

    نقل قول: محدود کردن دسترسی به صفحات

    salsm
    mamnon misham bishtar tozih bdi albate besorat tasviry
    ممنون

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •