2009-05-21 2 views
4

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

Например:

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

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

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

+0

См. мой добавленный ответ ниже. –

+0

Ага - вы используете IIS6. Я добавил дополнительные инструкции в свой ответ. –

ответ

1

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

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

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

+0

Я получаю, как настроить авторизацию с помощью AuthorizeAttribute на моих действиях контроллера, но для меня это кажется странным, как способ сделать это. – Micah

+0

Может ли это вызвать всплывающее окно аутентификации, которое заставляет их заходить? – Micah

+0

Да. Это действительно так. –

1

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

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

ИЛИ

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

+0

Не могли бы вы elabora te на решение для печенья немного больше, пожалуйста? – Micah

0

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

0

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

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

+0

Я запускаю IIS6, но он размещен, поэтому я не уверен, как работает .htaccess. Не могли бы вы уточнить? Решение VPN не будет работать из-за размещенной среды, и это, в конечном счете, станет публичным сайтом. – Micah

1

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

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

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

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

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

0

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

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

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

Смежные вопросы