Настройка закрытой бета-версии для веб-сайта

StackOverflow https://stackoverflow.com/questions/894931

  •  23-08-2019
  •  | 
  •  

Вопрос

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

Например:

Когда сайт заработает, пользователи перейдут на http://www.mydomain.com который не потребует от них входа в систему.

Для бета-версии я хочу ограничить доступ.Пользователи, которые заходят в http://www.mydomain.com будет перенаправлен на страницу входа.Любой, кто попытается получить доступ к ЛЮБОЙ ЧАСТИ САЙТА, ​​не прошедший аутентификацию, будет перенаправлен обратно на страницу входа.

Я мог бы прикрепить атрибуты [Authorize] ко всем действиям моего контроллера, но это кажется глупым.

Это было полезно?

Решение

Если вы используете ASP.NET MVC, он поставляется с встроенной аутентификацией/авторизацией.Вы сможете использовать это для настройки аутентификации на своем сайте.

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

Если вы используете IIS6, вы можете легко настроить авторизацию.Щелкните правой кнопкой мыши свой сайт > Свойства > вкладка «Безопасность каталога» > «Аутентификация и контроль доступа» > «Редактировать» и введите имя пользователя/пароль по вашему выбору.Сделанный.

Другие советы

Реальный вопрос в том, как их приглашают на закрытое бета-тестирование?

Вы можете установить пароль, который удаляет файлы cookie, как это делает serverfault.com.

ИЛИ

Если вы знаете, кого приглашаете:вы можете добавить их в систему заранее, используя адрес электронной почты/логин, который вам уже известен (при условии, что вы приглашаете их по электронной почте)

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

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

<add key="adminaccessonly" value="0" />

Класс пользовательской страницы будет проверять это значение при загрузке.Если бы он был не 0, он бы перенаправлялся на страницу (хотя она не унаследовала тот же пользовательский класс страницы), информируя пользователя о том, что «сайт сейчас недоступен».Если бы значение было 0, страница загружалась бы как обычно.

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

Лучшим способом является система приглашений (на основе кода приглашения) или доступ с подтверждением вручную после создания профиля в вашей системе.ИМХО

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

ИЛИ, альтернативно, вы можете использовать Apache или IIS для принудительной аутентификации при доступе к каталогу веб-сайта.Сохранение информации для аутентификации в .htaccess на некоторое время.

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

В вашем случае просто назначьте роль Private_beta вашим приглашенным на частную бета-версию и убедитесь, что в вашем механизме авторизации все пользователи имеют привилегию Private_beta, прежде чем они смогут продолжить.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top