لماذا بلادي asp.net صفحة الدخول عضوية لا تعمل مع إعادة توجيه؟
-
22-08-2019 - |
سؤال
ولدي هذا الإعداد عضوية الموقع على الجهاز المحلي بلدي باستخدام موفر العضوية ASP.NET. عندما أذهب إلى:
HTTP: // المضيف المحلي / المشرف /
ووالموجهات لي أن
HTTP: //localhost/Login.aspx ReturnUrl =٪ 2fadmin٪ 2fDefault .aspx اتصال
والتي على ما يرام. ولكن بعد أن وضع في معلومات تسجيل الدخول الخاصة بي، الصفحة فقط يبدو لتحديث. لم يكن في الواقع تسجيل لي في، ويبدو تماما مثل ذلك ينعش الصفحة. إذا قمت بتغيير URL إلى:
وأنه يعمل بشكل جيد. فإنه يسجل لي في أي مشكلة، والموجهات لي إلى الصفحة الافتراضي. أنا أيضا التحقق من الموقع مباشرة وأنه يفعل الشيء نفسه. أيه أفكار؟ ويرجع الفضل في ذلك مسبقا!
وتحرير: هنا هو الترميز:
<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
صغيرة).