Derrick Chandler Ответов: 1

Как перенаправить пользователей на определенную страницу на основе их регистрационных данных


Я пытаюсь создать веб-приложение, используя 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 аутентификация прошла успешно

1 Ответов

Рейтинг:
0

ZurdoDev

В вашем коде входа после проверки имени пользователя и пароля вы можете использовать ответ.Перенаправление ("urltogoto"); чтобы перенести их на новую страницу.


Derrick Chandler

Хотел бы я поставить ответ.Перенаправить строку в файл web.config для входа в систему.aspx fie? Простите меня, поскольку я несколько новичок в этом деле.

ZurdoDev

Это было бы в коде позади файла. Нет никакого кода в webconfig или даже в файле aspx. Код отправляется на ваш .файл в CS (Си-Шарп).

Derrick Chandler

Попался. Я хочу сделать это на основе определенного имени пользователя и пароля. Со страницы входа в систему, если пользователи являются конечными пользователями, они будут перенаправлены на клиентскую страницу, но если они являются ИТ-администраторами, они будут перенаправлены на страницу администратора. Я хочу сделать это без необходимости использовать базу данных SQL.

ZurdoDev

Тогда вам придется жестко все закодировать, что действительно плохая идея. Но тогда вы можете сделать что-то вроде

... код для проверки имени пользователя и пароля...
...
if (Group == "IT Admins") {
Ответ.Перенаправление("somepage.aspx");
}
else if (Group == "пользователи")
{
Ответ.Перенаправление("SomeOtherPage.aspx");
}
...
и т.д.

Derrick Chandler

Где бы я указал группу в VS 2019? Если вы не слишком заняты, не могли бы мы провести сеанс TeamViewer?

ZurdoDev

Нет, я слишком занят. Но это не похоже на то, что вы должны делать. Вам действительно нужно больше понимать развитие.

Нет никакой встроенной групповой вещи, если только вы не говорите о группах Active Directory. Но нам понадобится больше информации от вас.

Проблема в том, что вы будете задавать один вопрос за другим. Вам действительно нужно либо заплатить кому-то, либо изучить некоторые основы кодирования.

Derrick Chandler

Если бы была доступность через Team Viewer, то больше никаких вопросов не возникло бы. Я сделал то, что вы предложили, и теперь у меня все еще есть другие вещи, которые идут не так. Это для командного проекта для школы, и я скорее сетевой администратор, а не кодер.

Я никому не буду платить за то, чтобы что-то делать. Если вы больше не можете мне помочь, я либо выясню это, либо попрошу кого-нибудь другого на этом сайте. хороший день.

ZurdoDev

Как вы сказали: "У меня все еще есть другие вещи, которые идут не так."

Мы все здесь, чтобы помочь, но мы не можем тратить весь день на вашу работу.

Но я предлагаю, поскольку вы уже прошли через это, открыть новый вопрос с любым конкретным шагом, на котором вы застряли.

Derrick Chandler

Из-за решения, которое вы мне дали. Вот почему я так сказал. Я никогда не просил тебя или кого-то другого делать за меня мою работу, поэтому мы туда не пойдем. Не отвечай мне больше, или я донесу на тебя.

ZurdoDev

Вы явно расстроились из-за того, что я сказал, и я не знаю почему. Я не тороплюсь добровольно помогать вам. Не знаю, почему это тебя беспокоит.

Ваш первоначальный вопрос заключается в том, как перенаправить пользователей на основе чего-то. Я ответил на этот вопрос, основываясь на информации, которую вы мне предоставили.

Derrick Chandler

Я ценю вашу добровольную помощь, но вы говорите такие вещи, как "это не для вас" или "я не могу делать вашу работу за вас" (я перефразирую на всякий случай, если вы почувствуете необходимость поправить меня). Я никогда не просил тебя делать за меня мою работу. Если бы вы прочитали в первоначальном вопросе, где я заявил, что я вроде как новичок в этом, вы бы поняли причину моего разочарования.

ZurdoDev

Я, конечно, понимаю причину вашего разочарования. Но вы также должны понимать, что вы не просто задаете один простой вопрос, на который мы можем ответить, а затем вы двигаетесь дальше. Быть новичком означает, что вам нужно много держаться за руки, и вопросы, которые вы задаете, заставляют меня предложить вам нанять кого-нибудь. Это не должно быть личным.

Derrick Chandler

На самом деле мне не нужна никакая рука. Я смог исправить эту проблему. Будет еще один вопрос. Пожалуйста, не стесняйтесь пропустить его или просто не отвечать на него. Спасибо.

ZurdoDev

Не нужно быть грубым. Я ответил на ваш вопрос и буду рад ответить на другой в любое время.

Derrick Chandler

Я согласен. Им обоим не было нужды грубить друг другу. Вопреки тому, что вы можете подумать, грубость была с обеих сторон. Берегите себя и будьте здоровы.