Настройка приватной беты для сайта - PullRequest
4 голосов
/ 22 мая 2009

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

Например:

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

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

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

Ответы [ 6 ]

1 голос
/ 22 мая 2009

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

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

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

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

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

1 голос
/ 22 мая 2009

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

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

OR

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

1 голос
/ 22 мая 2009

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

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

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

0 голосов
/ 22 мая 2009

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

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

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

0 голосов
/ 22 мая 2009

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

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

0 голосов
/ 22 мая 2009

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

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