Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/16: Рейтинг темы: голосов - 16, средняя оценка - 4.50
11 / 11 / 2
Регистрация: 12.02.2011
Сообщений: 88

Авторизация с одним пользователем

20.09.2011, 13:38. Показов 3301. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть две страницы.

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

База данных тут вообще не нужна. Где хранить логин-пароль?
И как реализовать подобную схему авторизации?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.09.2011, 13:38
Ответы с готовыми решениями:

BWMeter не запускается по одним пользователем
Доброго времени суток! Такая проблема BWMeter не запускается по одним пользователем на домашнем компьютере. Раньше все запускалось, но с...

Несколько подключений под одним пользователем
Здравствуйте! Можно ли в Firebird версии 2.5 сделать какие-либо настройки,чтобы под одним пользователем можно было подключаться один раз...

Подключение к RDP под одним пользователем
Всем привет! Вопрос в следующем, Windows Server 2008 R2 к нему есть подключение по RDP, один ПК подключился, но при входе второго,...

13
CEO
Эксперт С++
 Аватар для Alligieri
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
20.09.2011, 13:44
Цитата Сообщение от keetotko Посмотреть сообщение
Нужно, чтобы вторая страница была доступна только одному пользователю
Фильтр Authorize на действие контроллера который отдает вторую страницу
Цитата Сообщение от keetotko Посмотреть сообщение
Где хранить логин-пароль?
credentials в web.config (желательно в хеш-виде)
Цитата Сообщение от keetotko Посмотреть сообщение
И как реализовать подобную схему авторизации?
1. Настроить авторизацию форм в web.config
2. Занести логин-пароль
3. Authorize на действие контроллера
4. ...
5. PROFIT!
0
11 / 11 / 2
Регистрация: 12.02.2011
Сообщений: 88
20.09.2011, 14:13  [ТС]
Alligieri, а можно поподробнее по первым двум пунктам?
проверку пароля, я так понимаю, писать надо в контроллере? как туда достать данные из web.config тогда?
0
CEO
Эксперт С++
 Аватар для Alligieri
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
20.09.2011, 14:35
keetotko, чтобы я долго и нудно не обьяснял - Глава 20, книга Метью МакДональд, Марио Шпушта Microsoft ASP.NET 3.5 с примерами на C# 2008 и Silverlight 2 для профессионалов 3-е издание, 2009
1
11 / 11 / 2
Регистрация: 12.02.2011
Сообщений: 88
20.09.2011, 14:45  [ТС]
спасибо. а silverlight тут зачем?
0
11 / 11 / 0
Регистрация: 11.08.2010
Сообщений: 130
20.09.2011, 14:52
Вот как хранить переменные в webcongig
HTML5
1
2
3
4
5
6
<appSettings>
    …….
      <!--Пользовательские настройки-->
    <add key="yyy" value = "-60" />
    <add key="xxx" value = "6" />
  </appSettings>
Вот как получить в .cs
C#
1
ConfigurationManager.AppSettings["yyy"]
Вот атрибут в .cs если вы пользуетесь ролями
C#
1
[Authorize(Roles = "my_role")]
Вот проверка в .cs на авторизацию пользователя:
C#
1
if(Request.IsAuthenticated == true)
Вот как заавторизировать пользователя:
C#
1
Membership.ValidateUser(model.UserName, model.Password)
Вот как разовтаризировать:
C#
1
FormsAuthentication.SetAuthCookie(model.UserName, false);
Это то что я из проекта на скорую руку выдрал.

P.S. Да, кстати, авторизация используя membership – в стартовом проекте MVC она тоже используется.
0
CEO
Эксперт С++
 Аватар для Alligieri
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
20.09.2011, 14:56
Цитата Сообщение от developer_ Посмотреть сообщение
Вот как хранить переменные в webcongig
Данные для авторизации храняться в совсем другом разделе, не путайте человека.
Цитата Сообщение от developer_ Посмотреть сообщение
Вот как заавторизировать пользователя:
Там 1 пользователь будет! Зачем мембершип целый поднимать для такого? В формах код авторизации другой

Цитата Сообщение от keetotko Посмотреть сообщение
спасибо. а silverlight тут зачем?
Это просто новая редакция книги, в старой может номер главы отличаться, а эта у меня просто рядом лежала - вот сразу и подсмотрел
0
11 / 11 / 0
Регистрация: 11.08.2010
Сообщений: 130
20.09.2011, 15:27
Данные для авторизации храняться в совсем другом разделе, не путайте человека.
Данные авторизации будут лежать там, куда вы их положите. Если пользуетесь стандартными средствами, то там где их положит код других программистов. И вообще где речь идёт о том где я писал о хранение данных авторизации? В топике несколько раз всплывал webconfig и я всего лишь показал как туда сохранять переменные.

Там 1 пользователь будет! Зачем мембершип целый поднимать для такого?
Ну во-первых – один пользователь не отменяет всю инфраструктуру авторизации, да и вобще где один, там и второй. И во-вторых – стартовый проект MVC, всё готово! Практически ничего не надо переделывать. Устанавливаешь SQL, натравливаешь C:\WINDOWS\Microsoft.NET\Framework\v2.0. 50727\aspnet_regsql.exe, и прописываешь в webconfig строку подключения. И практически всё. Вы получаете код протестированный тысячами программистов. В вижле целый сайт создан для администрирования - иконка молотка и земногошара в обозреватиле решений.
Ну да ладно, если хочется по изобретать велосипед, навскидку, делаешь страницу авторизации, записываешь в созданную переменную сессии пароль авторизации, и при заходе на страницу, сравнивать с константой, например из того же webconfig . Совпало – иди дальше, нет – переадресация на страницу авторизации.
0
20.09.2011, 15:38

Не по теме:

Цитата Сообщение от developer_ Посмотреть сообщение
Устанавливаешь SQL
но ТС сказал что
Цитата Сообщение от keetotko Посмотреть сообщение
База данных тут вообще не нужна.
Вопрос
Цитата Сообщение от keetotko Посмотреть сообщение
Где хранить логин-пароль?
Ваш ответ
Цитата Сообщение от developer_ Посмотреть сообщение
И вообще где речь идёт о том где я писал о хранение данных авторизации?
(Зачем тогда этот ответ если он не по теме?!)
Цитата Сообщение от developer_ Посмотреть сообщение
В топике несколько раз всплывал webconfig и я всего лишь показал как туда сохранять переменные.
Типа - "слышу звон, но не знаю где он". Без обид. Просто не запутывайте спрашивающих еще больше - и я замечаний делать не буду.

0
20.09.2011, 15:40

Не по теме:

Вы выдрали выгодные вам фразы из контекста. Ладно, умываю руки, работать надо.

0
11 / 11 / 2
Регистрация: 12.02.2011
Сообщений: 88
21.09.2011, 17:00  [ТС]
Alligieri, ну, это все, конечно, хорошо. в общем я понимаю, как нужно делать. но не знаю, каким образом, например, выдрать данные из формы с логином и паролем для проверки. где это делается и как - ума не приложу. то, что вы советовали посмотреть описывает Web Forms, а топик-то по MVC.

вот к примеру есть разметка
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<div id="login-stripe">
    <div id="login-box">
        <p style="color: #99d4d7">please enter your login and password</p>
        <hr />
        <div id="div-logon">
            <form action="Index">
            <p style="color: #fff">login<input style="float: right" type="text" /></p>
            <p style="color: #fff">password<input style="float: right" type="password" /></p>
            </form>
        </div>
        <hr />
        @Html.ActionLink("enter", "Waiting", "Home", null, new { @class = "enter" })
    </div>
</div>
нужно, чтобы по нажатию на ActionLink происходила отправка данных и проверка. Хоть начало самое подскажите.
0
CEO
Эксперт С++
 Аватар для Alligieri
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
21.09.2011, 22:55
keetotko, так и быть - помогу. надеюсь настройку конфига вы проделали потому опишу только примерный код екшена для проверки валидности пароля. Измените только ActionLink на сабмит а поля разместите в форме - иначе на стороне сервера данных нам не видать

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
[HttpPost]
public ActionResult Waiting(string login, string password)
{
if (FormsAuthentication.Authenticate(name,password))
{
FormsAuthentication.RedirectFromLoginPage(login,false);
}
else
{
//регистрация ошибки - лубым удобным вам способом
return View();
}
}
Добавлено через 1 минуту
если настройку конфига не проделали - смотрите Сандерсона, в первом издании Глава 6. Приложение SportStore: администрирование и финальные усовершенствования - Настройка средства Forms Authentication (и почему я вас сразу туда не отправил?! забыл наверное)
0
11 / 11 / 2
Регистрация: 12.02.2011
Сообщений: 88
22.09.2011, 16:38  [ТС]
Alligieri, я почти добрался до истины. аутентификацию сделал.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  public class HomeController : Controller
    {
        [HttpGet]
        public ActionResult Index(string name, string password)
        {
            return View();
        }
 
        [HttpPost]
        public ActionResult Index(string name, string password, string returnUrl)
        {
            if (FormsAuthentication.Authenticate(name, password))
            {
                FormsAuthentication.SetAuthCookie("name", false);
                return RedirectToAction("Index", "Waiting");
            }
            else
            {
                return RedirectToAction(returnUrl);
            }
        }
    }
НО! мне нужно, чтобы в методе
C#
1
2
3
4
5
[HttpGet]
        public ActionResult Index(string name, string password)
        {
            return View();
        }
происходила проверка куков, и если юзер авторизован, происходило бы следующее:
C#
1
return RedirectToAction("Index", "Waiting");
уже часа два потратил на чтение мануалов. чтобы понять, читать нужно с начала книги, а реализация этой плюшки нужна как можно быстрее. подскажите, как быть?
0
CEO
Эксперт С++
 Аватар для Alligieri
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
22.09.2011, 17:09
keetotko, User.Identity.IsAuthenticated, только я уже чую что вы нагородили костылей. Фильтр Authorize сам распознает когда пользователь аутентифицирован, а настройка аутентификации форм - форму для пренаправления. Ну вам виднее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.09.2011, 17:09
Помогаю со студенческими работами здесь

Закрепить за одним пользователем только один компьютер
Есть 3 таблицы , Сотрудники, компьютеры, Движение вычислительной техники. В таблице движение вычислительной техники хранятся ключ поля...

Авторизация под одним и тем же логином
Добрый день, подскажите почему постоянно заходит через первую запись базы где логин admin, причем логины и пароли ввожу разные. Внизу кусок...

Mdb не открывается более чем одним пользователем Access2010
база лежит на сервере. С каждого компа открывается по очереди. Но если открыта с одного компа с другого не открывается. Без каких либо...

Ограничение на количество открываемых сессий одним пользователем в Oracle.
Существует такая проблема: есть web-приложение, в котором происходит коннект к Oracle 8.1.7. В качестве сервера приложений используется...

Авторизация под одним аккаунтом на нескольких устройствах
В данный момент реализовано следующим образом. Когда пользователь авторизуется, присваивается уникальный ключ, который заноситься в бд...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru