Ответ на ваш вопрос очень широк. Поэтому вместо кода я даю вам алгоритм.
1. Создайте метод, который будет проверять предоставленные имя пользователя и пароль в вашем файле слоя данных.
Например. bool IsAuthenticatedUser (). Внутри этого метода запустите Command.ExecuteScalar. Вот запрос"
Declare @Count =(Select Count(*) From Login
Where UserName = @UserNAme and Password = @Password)
Select @Count;
- Предполагается, что вы используете Sql Server 2008
2. Теперь в вашем методе IsAuthenticated проверьте, является ли возвращаемое значение единицей, затем верните true, иначе false. Как то так
int count = (int)command.ExecuteScalar();
If (count ==1)
{
return true;
}
return false;
3. В пользовательском интерфейсе проверьте значение, возвращаемое методом. Если это правда, перенаправьте пользователя на его страницу. И установить сессию. Для отображения имени электронной почты идентификатор на странице,
После успеха метода IsAuthenticated создайте другой метод, который будет выбирать нужные объекты в базе данных и заполнять их данными.
Как то так
If(IsAuthenticatedUser(username, password))
{
Datatable dt = GetUserDetails(username,password);
If(dt!=null)
{
if(dt.rows.count >0)
{
// here there is only one row so you can use index [0] also
foreach(DataRow dr in dt.rows)
{
Session["UserName"] = dr["UserName"].tostring();
Session["Email"] = dr["Email"].tostring();
}
}
}
Теперь на нужной странице проверьте, не равны ли оба сеанса значения NULL, затем установите значение на нужную метку.
If (Session["UserName"]!=null && Session["Email"]!=null)
{
lblUserName.Text = "Welcome " + Session["UserName"].ToString();
lblEmail.Text = Session["Email"].tostring();
}
** Здесь параметр userName и password будет значением, переданным из текстового поля.
string username = txtUserName.text.trim();
string password = txtPassword.text.trim();
Также вы должны поставить проверки перед принятием ввода от пользователей, так как это может привести к внедрению sql и раскрытию всей вашей базы данных. но для домашних целей вы можете сделать это. **
См. Обновление:
Для отображения имени на каждой странице Создайте главную страницу и добавьте на нее две метки. Для добавления главной страницы, из контекстного меню Добавить новый элемент -> MasterPage. Теперь в представлении исходного кода добавьте таблицу в соответствии с вашими потребностями. Также есть ContentPlaceholder, не добавляйте внутри этого тега. Это пространство для отображения других дочерних страниц. в событии загрузки главной страницы используйте метку = код сеанса для установки имени. Также добавьте кнопку ссылки, в ее событии нажмите
* +1039 * Session.Abandon ();
* * Response.Redirect тысяча сорок-один ( "~ / Login.aspx Выход = 1?"); * +1042 *
-> Я добавил новую вещь? Выход из системы, называемый строкой запроса, используемый для передачи значений с одной страницы на другую. Здесь я использую Login = 1, что означает, что я могу знать, что я на странице входа, потому что я вышел из системы.