أفضل ممارسة للسماح لجميع المستخدمين بصفحة واحدة فقط

StackOverflow https://stackoverflow.com/questions/18460

  •  09-06-2019
  •  | 
  •  

سؤال

ما هي أفضل طريقة للسماح لجميع المستخدمين بصفحة واحدة في موقع asp.net.

باستثناء صفحة تسجيل الدخول وصفحة واحدة أخرى، أمنع جميع المستخدمين من عرض الصفحات في الموقع.

كيف تجعل هذه الصفحة في متناول جميع المستخدمين؟

هل كانت مفيدة؟

المحلول

لقد كنت أستخدم مصادقة النماذج وأنشئ كائنات GenericIdentity وCustomPrincipal الضرورية التي تسمح لي بالاستفادة من وظائف النوع User.IsInRole التي تحصل عليها عادةً فقط من خلال مصادقة Windows.

وبهذه الطريقة، في ملف web.config الخاص بي، يمكنني القيام بأشياء مثل...

<location path="Login.aspx">
   <system.web>
      <authorization>
         <allow users ="*" />
      </authorization>
   </system.web>
</location>

<location path="ManagementFolder">
   <system.web>
      <authorization>
         <allow roles ="Administrator, Manager" />
      </authorization>
   </system.web>
</location>

نصائح أخرى

لقد قمت بإنشاء فئة "صفحة" أساسية تتعامل مع هذا النوع من الأشياء.يمكن بعد ذلك تزيين جميع صفحاتي بالسمة RequiresLogin إذا كان تسجيل الدخول مطلوبًا لعرضها.إذا لم تكن السمة موجودة، فيمكن للجميع الوصول إلى الصفحة.

مثال:

<RequiresLogin()> _ 
<RequiresPermission("process")> _
Partial Class DesignReviewEditProgressPage
    Inherits MyPage 'which inherits System.Web.UI.Page and deal with logins itself

    ...
End Class

تتحقق فئة MyPage من السمات التي تم وضع علامة عليها لنفسها وإذا كان RequiresLogin موجودًا، فإنها تعيد توجيهك إلى صفحة تسجيل الدخول.

أعتقد أنه يمكن تكييف هذا ليناسب مشكلتك الخاصة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top