سؤال

ولدي هذا الإعداد عضوية الموقع على الجهاز المحلي بلدي باستخدام موفر العضوية ASP.NET. عندما أذهب إلى:

HTTP: // المضيف المحلي / المشرف /

ووالموجهات لي أن

HTTP: //localhost/Login.aspx ReturnUrl =٪ 2fadmin٪ 2fDefault .aspx اتصال

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

HTTP: //localhost/Login.aspx

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

وتحرير: هنا هو الترميز:

<asp:Login ID="Login1" runat="server" CssClass="LoginBox" TitleText="Please Log In">
    <LayoutTemplate>
        <h2>
            Please Log In:</h2>
        <p runat="server" id="FailureText" visible="false">
            Either your email address or password was incorrect. Please try again.</p>
        <strong>Email</strong><br />
        <asp:TextBox ID="UserName" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"
            Text="*"></asp:RequiredFieldValidator>
        </p>
        <p>
            <strong>Password</strong><br />
            <asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox>
            <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"
                Text="*"></asp:RequiredFieldValidator>
        </p>
        <p>
            <asp:Button ID="Login" CommandName="Login" runat="server" Text="Log In" /></p>
        <p>
            Please <a runat="server" id="Link_ContactUs">contact </a>an administrator if you
            are having trouble logging in or have forgotten your password.</p>
    </LayoutTemplate>
</asp:Login>

وإعداد الملف web.config:

<authentication mode="Forms">
  <forms loginUrl="/Login.aspx"
         protection="All"
         timeout="60"
         name="AppNameCookie"
         path="/Admin"
         requireSSL="false"
         slidingExpiration="true"
         defaultUrl="/Admin/Default.aspx"
         cookieless="UseCookies"
         enableCrossAppRedirects="false" />
</authentication>
هل كانت مفيدة؟

المحلول

ويمكن أن تظهر لنا بعض الرمز؟ إذا كنت تستخدم طريقة FormsAuthentication.RedirectFromLoginPage، يجب أن تحصل على ما تريد. هل تستخدم FormsAuthentication.SetAuthCookie بدلا من ذلك؟

تحديث

تغيير path="/Admin" في web.config إلى path=/

والسبب أنه لا يعمل هو أن ملف تعريف الارتباط مصادقة الخاص بك هو فقط تعيين في مسار /Admin ومتصفحك يعامل محددات مواقع المعلومات حالة حساسة جدا انها لن ترسل ملف تعريف الارتباط مصادقة عودة إلى الصفحة /admin/Default.aspx (admin صغيرة).

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