سؤال

ولدي كما ASP.Net 2.0 الموقع مع SQL Server كما قاعدة البيانات وC # 2005 كلغة برمجة. الموقع هو شبه كامل وجميع الروابط تعمل بشكل جيد. ولكن أريد أن منع المستخدمين العاديين من فتح بضع صفحات. عندما ينقر المستخدم على أي تلك الصلات محددة، صفحة أخرى تفتح الذي يحتوي على عنصر تحكم ASP تسجيل الدخول. يجب على المستخدم توفير معرف المستخدم وكلمة المرور صالحة لعرض الروابط التي تشير إلى صفحات تقييدا. ولكن كونه مبتدئ، وأنا لا أعرف كيفية الاستفادة من القوة الكاملة للتحكم دخول ASP. لأنه إذا يحصل المستخدم على معرفة رابط الدقيق للصفحات مقيدة، ثم انه / انها يمكن تجاوز الرقابة تسجيل الدخول والوصول مباشرة إلى تلك الصفحات عن طريق كتابة عنوان الموقع في شريط العنوان. أريد لمنع ذلك. إذا قام المستخدم بكتابة عنوان الموقع مباشرة في شريط العناوين، أريد أن الصفحة نفسها أن تتحقق، إذا كان قد تم التحقق من صحة المستخدم من خلال مراقبة الدخول، وإما عرض الصفحة أو يشير المستخدم إلى صفحة تسجيل الدخول.

وكيف يمكنني تنفيذ هذه الميزة ؟؟

وشكرا.

واليت كومار بريق

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

المحلول

ويجب التحقق من المستخدم تسجيل في الدولة في كل حدث Page_Load() على الصفحات التي يجب أن تحكم الأذونات، أو ببساطة رمز المصادقة في ملف CS التي سيتم تضمينها في كافة الملفات الأخرى.

واعتمادا على بنية المصادقة التي اخترت (ببساطة استخدام متغير الدورة، أو إنشاء معرف جلسة عمل مع الكوكيز)، يجب التكيف مع التعليمات البرمجية الخاصة بك وفقا لذلك.

وأبسط طريقة سيكون لإدارة السجل الإضافية من خلال الكائن الدورة. عندما يسجل المستخدم في صحيح مع وثائق التفويض الصحيح، يمكنك تعيين Session["logged_in"] = true. وعلى كل حال Page_Load() الصفحات التي تريد حمايتها، وكنت بحاجة للقيام الاختيار التالية.

إضافة هذا الرمز في بداية Page_Load الخاص بك () وظيفة:

  if (Session["logged_in"] != null && (bool)Session["logged_in"] == true){
    Response.Write("I'm logged in!");
  }else{
    Response.Write("I'm not logged in.");
  }

ويرجى أن نضع في اعتبارنا أن هذا هو بخير لتطبيقات الشبكه الداخلية بسيطة، ولكن إذا كنت ترغب في الحصول على أبنية تسجيل الدخول أكثر أمنا، تقرأ المزيد عن هذا الموضوع، كما reloying فقط على متغيرات جلسة ليست آمنة لجلسات يمكن highjacked .

نصائح أخرى

وأنت تريد أن نلقي نظرة على secton و موقع من التكوين على شبكة الإنترنت.

في هذا القسم، يمكنك تحديد وصولا الى مستوى الصفحة حقوق الوصول، لذلك لن يهم إذا عرف المستخدمين URL للصفحات المضمونة، فإن ASP.NET عدم السماح لهم بالدخول.

وهكذا أنت أن أضيف شيئا مثل:

<location path="SecuredPage.aspx">
  <system.web>
     <authorization>
        <deny users="?"/>
     </authorization>
  </system.web>
</location>

وو"رفض المستخدمين ="؟ "" يقول الشيء "رفض كافة المستخدمين المجهولين".

ويمكنك أيضا إعداده للسماح فقط بعض الأدوار، إذا كنت تستخدم تلك.

ويمكن الاطلاع على مزيد من المعلومات حول قسم التفويض هنا:

<اقتباس فقرة>   إذن

العنصر

وهذا هو غذاء للخدمات العضوية ASP.Net. نلقي نظرة على هذه المقالة وأيضا <أ href = على "HTTP : //aspnet.4guysfromrolla.com/articles/120705-1.aspx "يختلط =" نوفولو noreferrer "> سلسلة كبيرة في أكثر من 4GuysFromRolla.

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

وسوف تحتاج وسيلة لإدارة جلسات تسجيل الدخول لكل مستخدم. وفيما يلي بعض الدروس التي يمكن أن تساعدك:

http://www.codeproject.com/KB/session/NoCookieSessionLogin.aspx

http://www.dotnetspider.com /resources/5597-Handling-Session-for-Login-Logout.aspx

وأنا من شأنه أن يجعل الجدول دور للمستخدمين. كل من يسجل في يحصل على دور «طبيعية». استخدامات الخاصة الذين تقوم بتعيينها من قبل وثائق تفويضهم الحصول على تعيين الأدوار للوصول إلى صفحة أو قسم من موقع الويب الخاص بك. أن بعض المستخدمين (مثل نفسك) الحصول على دور المسؤول الذي يسمح لهم تلقائيا الحصول على كل شيء.

والنار من وظيفة تسمى CheckIsInRoles ( 'المسؤول'، 'عادي'، 'WhateverRoleYouChoose') التي ترجع منطقية. إذا كان هذا صحيحا، تحميل الصفحة. إن لم يكن، لا تفعل ذلك.

وحتى أفضل لا تعرض وصلة إن لم يكن في دور الصحيح.

وهذا له فائدة إضافية تتمثل في الجميع بتسجيل الدخول مرة واحدة ثم الوصول إلى جميع الصفحات التي تحتاج إلى دون الحاجة إلى تسجيل الدخول في كل مرة.

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