Почему моя страница входа в систему членства asp.net не работает с перенаправлением?
-
22-08-2019 - |
Вопрос
У меня есть настройка этого сайта членства на моем локальном компьютере с использованием поставщика членства ASP.NET.Когда я иду:
Он перенаправляет меня на
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=/
Причина, по которой это не работает, заключается в том, что ваш файл cookie аутентификации устанавливается только в /Admin
путь, и ваш браузер обрабатывает URL-адреса с учетом регистра, поэтому он не отправляет файл cookie аутентификации обратно на /admin/Default.aspx
страница (строчные буквы admin
).