ASP.NET вход на сайт с проверкой подлинности с помощью форм против - PullRequest
3 голосов
/ 15 ноября 2008

У меня есть стандартный веб-сайт ASP.NET. Любой может прочесть / просмотреть любую страницу (кроме раздела администратора), но когда кто-то хочет внести свой вклад, он должен войти в систему. Как и большинство сайтов для добавления материалов.

Итак, если у меня есть свой СОБСТВЕННЫЙ элемент управления входом в систему или поля ввода имени пользователя / пароля / отправки, почему я хотел бы включить аутентификацию форм вместо просто ни одного? Что дает мне форма auth, которая, имея мой собственный код, который проверяет мою базу данных на наличие пользователя / пароля и два моих собственных поля ввода + кнопку отправки, отлично справляется со своей задачей?

(ПРИМЕЧАНИЕ: мне действительно не нравится членство в asp.net, которое создает все эти таблицы и usp в базе данных, поэтому, пожалуйста, не предлагайте мне это использовать).

Например, с помощью моего кода, когда я аутентифицирую пользователя (с помощью собственного кода базы данных), я вручную создаю свою личность и т. Д.

все это требуется? Какова основная цель этого?

ура!

Ответы [ 3 ]

2 голосов
/ 15 ноября 2008

Вы можете авторизовать своих пользователей как угодно. FormAuthentication используется для установки идентификатора сеанса и файла cookie аутентификации, который позволяет пользователям оставаться в системе до тех пор, пока они не выйдут из системы или не истечет срок действия сеанса. Вам не нужно использовать поставщиков членства, чтобы использовать FormsAuthentication. Похоже, вы просто воспроизводите эту функцию.

...do your authentication against your DB or Active Directory

if (Request.QueryString["ReturnUrl"] != null)
{
    FormsAuthentication.RedirectFromLoginPage(userName.Text, false);
}
else
{
    FormsAuthentication.SetAuthCookie(userName.Text, false);
}

Тогда вам нужно настроить его для использования в web.config

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="Login.aspx"
           protection="All"
           timeout="30"
           name="my-auth-cookie" 
           path="/"
           requireSSL="false"
           slidingExpiration="true"
           defaultUrl="default.aspx" />
  </authentication>
</system.web>

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

Подробнее здесь .

0 голосов
/ 15 ноября 2008

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

В своем опыте работы я использовал пользовательскую аутентификацию и просто перенес профиль авторизованного пользователя (самостоятельно созданный) в переменную сеанса.

Членство в asp.net также может быть затруднено портировать на некоторых провайдеров виртуального хостинга.

0 голосов
/ 15 ноября 2008

Обратите внимание, что вы можете использовать аутентификацию форм ASP.Net и внедрить своего собственного провайдера членства , который будет читать / записывать в существующие таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...