في ASP.NET؛كيف يمكنني تسجيل الدخول من صفحة HTML بعيدة إلى صفحة ASPX أخرى بعضوية ASP.NET

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

سؤال

أحتاج أساسًا إلى تسجيل الدخول إلى مجال آخر يستخدم عضوية asp.net.

إذا كان لدينا تطبيق ويب ASP.NET باستخدام عضوية ASP.NET من ناحية ، وصفحة HTML من مجال آخر من ناحية أخرى.

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

لقد قمت بذلك مع Coldfusion من قبل ولكن عضوية ASP.NET تستخدم عنصر تحكم الخادم.

هتافات!

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

المحلول

أسفل التحكم في خادم تسجيل الدخول، يستخدم ASP.NET تطبيق MembershipProvider ومصادقة النماذج لمستخدم لديه عضوية ASP.NET.يمكنك تكرار هذه الخطوات دون استخدام التحكم في خادم تسجيل الدخول، وذلك عن طريق التحقق من صحة بيانات الاعتماد يدويًا ثم إرفاق FormsAuthentication ملف تعريف الارتباط إلى Response.

فيما يلي بعض الموارد التي يجب أن تساعدك على البدء:

من المحتمل أيضًا أن تستفيد من التفكير في مصدر Login التحكم، حتى تتمكن من فهم التسلسل الدقيق للأحداث التي تحدث عندما يقوم المستخدم بتسجيل الدخول باستخدام عنصر تحكم الخادم.وهذا من شأنه أن يسهل عليك فهم كيفية تكرار هذه الوظيفة لحالة الاستخدام الخاصة بك.

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

تحديث، أشعر بالسخاء، لذلك

فيما يلي مثال للمعالج الذي يمكنك استخدامه لتسجيل دخول مستخدم باستخدام عضوية ASP.NET وFormsAuthentication (تمامًا مثل عنصر تحكم الخادم).

يفترض هذا الرمز:

  1. يوجد تعيين تم تكوينه باستخدام التوجيه أو web.config الذي سيستدعي هذا المعالج.
  2. تحتوي الصفحة الطالبة على نموذج يشير إلى عنوان URL/المسار الذي تم تعيينه في web.config أو مع التوجيه، وأن النموذج الموجود في تلك الصفحة يحتوي على username حقل الإدخال مع الاسم username و أ password حقل الإدخال مع الاسم password.

        public class LoginHandler : IHttpHandler
        {
            void IHttpHandler.ProcessRequest(HttpContext context)
            {
                string username = context.Request["username"];
                string password = context.Request["password"];
                if (!string.IsNullOrWhiteSpace(username) && !string.IsNullOrWhiteSpace(password) && Membership.Provider.ValidateUser(username, password))
                {
                    FormsAuthentication.SetAuthCookie(username, true);
                    RenderUserLoggedInResponse(context.Response,username);
                }
                else FormsAuthentication.RedirectToLoginPage("loginfailure=1");
            }
            private static void RenderUserLoggedInResponse(HttpResponse response, string username)
            {
                response.Write(string.Format("You have logged in successfully, {0}!", username));
                response.End();
            }
    
            bool IHttpHandler.IsReusable { get { return true; } }
        }
    
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top