إعادة كتابة رابط ل+ Asp.Net نموذج تسجيل الدخول = الموت

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

سؤال

وعلى موقعنا نحن لا إعادة كتابة عنوان لتوليد كميات هائلة من صفحات قاعدة البيانات التي تم إنشاؤها. في كل صفحة، وهناك مراقبة الدخول للمستخدمين. مثل هذا:

وصفحة aspx الداخلية: /DB.aspx؟id=123 العضو رابط مرئي: /ABC/123.aspx، /ABC/456.aspx ... (رابط إعادة كتابة)

للأسف، علامة على كل صفحة لها سمة عمل "DB.aspx؟ ID = 123". عندما ينقر المستخدم على زر المتصفح بالإرسال إلى /ABC/DB.aspx؟id=123 والتي بالطبع لا وجود له.

وحلول حاولت: 1. تغيير السمة الإجراء من قبل إن شاء subclasses ترث HtmlForm. هذا يدمر كل أشكال أخرى على الموقع. 2. إزالة السمة العمل (بحيث المتصفح بالإرسال دائما إلى نفس رابط). وهذا يعمل على صفحات إعادة كتابة ولكن على "/" (في Default.aspx في دير الجذر) أحصل على الرسالة التي لا يسمح منصب الفعل على "/" (IIS 6 و ليس لدي أي السيطرة على تعيينات)

وأي شخص؟

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

المحلول

وتحقق هذا بلوق وظيفة جميلة من سكوت غو، <وأ href = "http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp- net.aspx "يختلط =" noreferrer نوفولو "> http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx .

و"على وجه التحديد، يمكنك الاستفادة من ASP.NET 2.0 محول تحكم الهندسة المعمارية التمدد جديدة لتخصيص جعل من السيطرة، وتجاوز في" العمل "قيمة السمة مع القيمة التي تقدمها. وهذا لا تتطلب منك تغيير أي رمز في صفحات .aspx بك "

وتحقق من المقطع: "معالجة ASP.NET إعادات النشر مع URL إعادة كتابة"، ولقد استخدمت محول انه شارك بنجاح

وفرع فلسطين. تكون على علم هناك بعض القضايا على asp.net عند استخدام رابط إعادة كتابة عند استخدام جلسة مع ملفات تعريف الارتباط، وعنوان الموقع هو إعادة كتابة أعمق من الصفحة الأصلية، تماما مثل واحد لديك. (/ اي بي سي / apage مقابل / ديسيبل؟). المسألة هي الحق في شفرة المصدر من إطار، وهناك حلول ولكن هذا الموضوع برمته (مع المفاضلات :( ... قد ترغب في أن يكون لهم على نفس المستوى).

نصائح أخرى

والدلالة ربما، ولكن هل العمل السمة = "DB.aspx؟ ID = 123" أو "/DB.aspx؟id=123"؟ على افتراض إعادة كتابة URL الخاص بك يسمح المار إلى الصفحات الفعلية، وهذا قد يكون مشكلتك.

وأنا لم يفعل ذلك، ولكن رأيت التعليمات البرمجية باستخدام العاكس، وأعتقد أنك يمكن إصلاحه بهذه الطريقة:

في الصفحة:

this.Form.Action = null;

وأو:

this.Form.SetAttribute("action", null);

إذا لم يفلح ذلك، مجرد مجموعة المسار الذي تريده:

وthis.Form.SetAttribute ( "العمل"، "ABC / 123.aspx")؛

إذا الترقية إلى ASP.NET 3.5 SP1، الممتلكات العمل الآن المعترف بها بشكل صحيح و يمكن أن يكون <لأ href = "http://geekswithblogs.net/ranganh/archive/2008/08/31/setting-the-asp.net-forms-action-attribute-url-rewriting. ASPX "يختلط =" نوفولو noreferrer "> مجموعة من codebehind .

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