Как перенаправить пользователей на определенную страницу на основе их регистрационных данных
Я пытаюсь создать веб-приложение, используя C# и ASP. Я создал страницу входа в систему с помощью проверки подлинности форм. Я вроде как новичок в этом, поэтому, пожалуйста, будьте внимательны к тому, как вы реагируете на меня. Я хотел бы, чтобы был способ просто загрузить файл решения проекта, потому что у меня могут возникнуть проблемы с файлом Web.config, а также файлом login.aspx. Для этого я использую Visual Studios 2019. пожалуйста помочь
DC
Что я уже пробовал:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="AOIWebApp01.Login" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div style="font-family:Arial"> <table style="border: 1px solid black"> <tr> <td colspan="2"> Please Enter Your Credentials </td> </tr> <tr> <td> User Name </td> <td> :<asp:TextBox ID="txtUserName" runat="server"> </asp:TextBox> </td> </tr> <tr> <td> Password </td> <td> :<asp:TextBox ID="txtPassword" TextMode="Password" runat="server"> </asp:TextBox> </td> </tr> <tr> <td> </td> <td> <asp:Button ID="btnLogin" runat="server" Text="Login" OnClick="btnLogin_Click" /> </td> </tr> <tr> <td colspan="2"> <asp:Label ID="lblMessage" runat="server" ForeColor="Red"> </asp:Label> </td> </tr> </table> <br /> <a href="Registration/Register.aspx">Click here to register</a> if you do not have a user name and password. </div> </form> </body> </html>Логин.aspx-файл.в CS
using System; using System.Web.Security; namespace AutOSImageWeb01 { public partial class Login : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {} [Obsolete] protected void btnLogin_Click(object sender, EventArgs e) { if (FormsAuthentication.Authenticate(txtUserName.Text, txtPassword.Text)) { FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, false); } else { lblMessage.Text = "Invalid Username and/or Password."; } } } }
MadMyche
Форма выглядит нормально, но без просмотра кода на ней Логин.aspx-файл.в CS трудно сказать, все ли в порядке; особенно то, что btnLogin_Click
метод, который будет считывать значения из формы, а затем проверять/проверять
Derrick Chandler
Вот код для файла login.aspx.cs:
использование системы;
использование System.Web.Security;
пространство имен AutOSImageWeb01
{
общественный разделяемого класса логин : системы.Веб.Пользовательского интерфейса.Страницы
{
охраняемых недействительными в(объект отправителя, EventArgs в электронной)
{
}
[Устарелый]
охраняемых недействительными btnLogin_Click(объект отправителя, EventArgs в электронной)
{
если (метод formsauthentication.Аутентификация(txtUserName.Текст, txtPassword.Text))
{
Метод formsauthentication.RedirectFromLoginPage(txtUserName.Текст, ложь);
}
еще
{
lblMessage.Text = "неверное имя пользователя и/или пароль.";
}
}
}
}
MadMyche
RedirectFromLoginPage
должно привести пользователя на страницу, которую он запросил в первую очередь.
Если вы хотите, чтобы это было что-то другое, прокомментируйте эту строку и добавьте свою собственную Перенаправлять рутина
Derrick Chandler
Я сделал это в следующем году:
использование системы;
использование системы.Коллекции.Общий;
использование System.Linq;
использование системы.Сеть;
использование System.Web.UI;
используя системы.Веб.Пользовательского интерфейса.WebControls;
использование System.Web.Security;
пространство имен AOIWebApp01
{
общественный разделяемого класса логин : системы.Веб.Пользовательского интерфейса.Страницы
{
охраняемых недействительными в(объект отправителя, EventArgs в электронной)
{
}
охраняемых недействительными btnLogin_Click(объект отправителя, EventArgs в электронной)
{
if (txtUserName.Текст == "enduser1, enduser2, enduser3")
{
Ответ.Перенаправление("client.aspx");
}
else if (txtUserName.Текст == "ITAdmin1, ITAdmin2, ITAdmin3")
{
Ответ.Перенаправление("admin.aspx");
}
}
}
}
MadMyche
Вы забыли сначала проверить их подлинность, и тогда это должно быть сделано только IF
аутентификация прошла успешно