كنت أدرس مؤخرًا التحكم في تسجيل الدخول الجديد في asp.net 2.0 ووجدت أن متطلبات أمان كلمة المرور الافتراضية للنظام مرتفعة نسبيًا، أي "الحد الأدنى لطول كلمة المرور هو 7، والتي يجب أن تحتوي على الأحرف غير الأبجدية الرقمية التالية: 1. "، بالنسبة إلى Wang Zhan العادي، ليس هناك حاجة (حتى windows2003sever لا يتطلب كلمة مرور معقدة كهذه افتراضيًا). طريقة التعديل التي توفرها بعض المواد المرجعية هي تعديلها في Machine.config. ولكن ما لم تكن لديك حقوق إدارية للمضيف، فلا يمكنك تعديله. لذلك لا يزال يوصى بتعديله في ملف web.config.
تتمثل الطريقة في إضافة علامات فرعية إلى عقدة <system.web> الخاصة بـ web.config:
<العضوية>
<المقدمون>
<إزالة الاسم = "AspNetSqlMembershipProvider"/>
<إضافة اسم = "AspNetSqlMembershipProvider"
type=" System.Web.Security.SqlMembershipProvider، System.Web، الإصدار=2.0.0.0، الثقافة=محايدة، PublicKeyToken=b03f5f7f11d50a3a"
ConnectionStringName = "LocalSqlServer"
تمكينPasswordRetrieval = "خطأ"
تمكين كلمة المرور = "صحيح"
يتطلب سؤال وجواب = "صحيح"
اسم التطبيق = "/"
يتطلبUniqueEmail = "خطأ"
تنسيق كلمة المرور = "مجزأ"
maxInvalidPasswordAttempts = "5"
الحد الأدنى لكلمة المرور المطلوبة = "6"
الحد الأدنى المطلوبNonalphanumericCharacters = "0"
كلمة المرور AttemptWindow = "10"
كلمة المرورStrengthRegularExpression = "" />
</المقدمين>
</العضوية>
دعونا نشرح السمات الرئيسية:
اتصال قاعدة بيانات ConnectionStringName. يجب تعيين هذا في web.config
EnablePasswordRetrieval يحصل على قيمة تشير إلى ما إذا كان موفر العضوية الحالي قد تم تكوينه للسماح للمستخدمين باسترداد كلمات المرور الخاصة بهم.
EnablePasswordReset يحصل على قيمة تشير إلى ما إذا كان موفر العضوية الحالي قد تم تكوينه للسماح للمستخدمين بإعادة تعيين كلمات المرور الخاصة بهم.
requireQuestionAndAnswer يحصل على قيمة تشير إلى ما إذا كان موفر العضوية الافتراضي يطلب من المستخدمين الإجابة على سؤال كلمة المرور لإعادة تعيين كلمة المرور واسترجاعها.
applicationName يحصل على اسم التطبيق أو يحدده.
requireUniqueEmail يشير إلى ما إذا كان يجب على المستخدم تقديم قيمة عنوان بريد إلكتروني فريدة عند إنشاء المستخدم.
يشير تنسيق كلمة المرور إلى التنسيق الذي يتم به تخزين كلمات المرور في مخزن بيانات العضوية. تعليمات مفصلة أدناه
maxInvalidPasswordAttempts يحصل على عدد كلمات المرور غير الصالحة أو عدد محاولات الإجابة على كلمة المرور غير الصالحة المسموح بها قبل حظر دخول المستخدم إلى العضوية.
minRequiredPasswordLength يحصل على الحد الأدنى للطول المطلوب لكلمة المرور.
minRequiredNonalphanumericCharacters يحصل على الحد الأدنى لعدد الأحرف الخاصة التي يجب تضمينها في كلمة المرور الصالحة.
passwordAttemptWindow يحصل على الحد الأقصى لعدد محاولات الإجابة على كلمة المرور غير الصالحة أو كلمة المرور غير الصالحة المسموح بها قبل إغلاق مستخدم العضوية، خلال دقائق.
تشير خاصية الوصف التفصيلي لـPasswordFormat إلى التنسيق الذي يتم تخزين كلمات المرور به. يمكن تخزين كلمات المرور بتنسيقات كلمات مرور واضحة ومشفرة ومجزأة. يتم تخزين كلمات المرور الواضحة في نص واضح، مما يؤدي إلى تحسين أداء تخزين كلمات المرور واسترجاعها، ولكنه أقل أمانًا ويمكن قراءتها بسهولة عند تعرض أمان مصدر البيانات للخطر. يتم تشفير كلمات المرور المشفرة عند تخزينها ويمكن فك تشفيرها عند مقارنة كلمات المرور أو استرجاعها. تتطلب كلمات المرور هذه معالجة إضافية أثناء التخزين والاسترداد، ولكنها أكثر أمانًا ولا يمكن استرجاعها بسهولة عند تعرض أمان مصدر البيانات للخطر. تتم تجزئة كلمات المرور المجزأة باستخدام خوارزمية تجزئة أحادية الاتجاه وقيمة ملح يتم إنشاؤها عشوائيًا عند تخزينها في قاعدة البيانات. عند التحقق من كلمة المرور، تتم تجزئة كلمة المرور مع قيمة الملح الموجودة في قاعدة البيانات للتحقق منها. غير قادر على استرداد كلمة المرور المجزأة.