Я создаю свой собственный движок блога в MVC3 и не хочу регистрировать пользователей для публикации комментариев и прочего. Я просто хочу иметь страницу входа для администратора (меня), поэтому я не хочу реализовывать членство. Я просто хочу, чтобы страница входа и атрибут [Authorize] были включены, а затем ссылка для выхода. Как лучше всего это сделать? Спасибо
Вход только для одного участника в MVC3
Ответы (2)
Атрибут [Authorize] использует объект HttpContext.Current.User IPrinicipal для проверки того, аутентифицирован ли пользователь. Если вы не хотите реализовывать MembershipProvider, вам придется реализовать некоторый тип вашего собственного объекта IPrinicipal. Другим решением может быть использование FormsAuthentication с настройкой web.config, которая выглядит примерно так:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880">
<credentials passwordFormat="SHA1">
<user name="admin" password="43206512b209ba29cb5c642edc85bdac133354fe"/> <!-- SecretPass -->
<credentials>
</forms>
</authentication>
Надеюсь, это поможет. С уважением.
РЕДАКТИРОВАТЬ: я использовал онлайн-генератор хэшей SHA1 http://hash.online-convert.com/sha1-generator
person
Husein Roncevic
schedule
02.08.2011
Благодаря вам нашел несколько статей про IPrincipal, внедряю и все работает, большое спасибо.
- person Libor Zapletal; 02.08.2011
Разве это не дает хакеру ваш пароль и не сообщает им, как он закодирован? Я не эксперт в области безопасности, поэтому, пожалуйста, простите меня, если я ошибаюсь, но наверняка хакеры смогут легко получить доступ к этой информации?
- person simonlchilds; 02.08.2011
Ну на самом деле вы правы. Но web.config никогда не обслуживается по запросу. Это было просто предложение Бибо. Однако если Bibo реализует объект типа IPrincipal, в web.config это не потребуется. Кроме того, алгоритм SHA1 довольно сложно взломать, но все же возможно с помощью грубой силы. Хорошая мысль, Чшарпси.
- person Husein Roncevic; 02.08.2011
Используя какой-либо жестко закодированный пароль/имя пользователя или логин для конкретной машины (модуль администратора доступен только для определенного IP-адреса), это легко.
person
nidhin
schedule
02.08.2011
Можете ли вы дать мне ссылку на статью об этом решении? :)
- person Libor Zapletal; 02.08.2011