Я не мог использовать ни одно из приведенных выше предложений. Почему я предпочитаю свое решение? Этот метод проверяет, находится ли мышь над элементом в любое время, выбранным вами. Mouseenter и: зависание - это круто, но mouseenter запускается только при перемещении мыши, а не при перемещении элемента под мышью. : hover довольно милый, но ... IE
Итак, я делаю это:
Нет 1. храните мышь x, y позицию каждый раз, когда вам нужно, No 2. проверьте, находится ли мышь над любым из элементов, которые соответствуют запросу, делают вещи ... например, запускают событие mouseenter
// define mouse x, y variables so they are traced all the time
var mx = 0; // mouse X position
var my = 0; // mouse Y position
// update mouse x, y coordinates every time user moves the mouse
$(document).mousemove(function(e){
mx = e.pageX;
my = e.pageY;
});
// check is mouse is over an element at any time You need (wrap it in function if You need to)
$("#my_element").each(function(){
boxX = $(this).offset().left;
boxY = $(this).offset().top;
boxW = $(this).innerWidth();
boxH = $(this).innerHeight();
if ((boxX <= mx) &&
(boxX + 1000 >= mx) &&
(boxY <= my) &&
(boxY + boxH >= my))
{
// mouse is over it so you can for example trigger a mouseenter event
$(this).trigger("mouseenter");
}
});
Это складывается, российский разработчик Ilya Konyukhov взял рукавицу после чтения этого и создал новую подлинную библиотеку для CI на основе Автора DX, в соответствии с рекомендациями и требованиями ниже.
И получающийся Автор Корпуса похож на ответ на вопрос OP. Я собираюсь рискнуть здесь и назвать Автора Корпуса лучшей библиотекой аутентификации для CodeIgniter доступный сегодня. Это - надежная библиотека, которая имеет все функции, в которых Вы нуждаетесь и ни одно из чрезмерного увеличения размера, которое Вы не делаете:
Профессионалы
- Полнофункциональный
- Минимизированное место (20 файлов) рассмотрение набора функций
- Очень хорошая документация
- Простое и изящное проектирование баз данных (всего 4 Таблицы базы данных)
- Большинство функций является дополнительным и легко настроено
- Поддержка файла языка
- reCAPTCHA поддерживается
- Рычаги в систему проверки CI
- Электронные письма активации
- Вход в систему с электронной почтой, именем пользователя или обоими (настраивающимися)
- Неактивированные учетные записи автоистекают
- Простая все же эффективная обработка ошибок
- Использование phpass для хеширования (и также хеширует автокоды для входа в DB),
- Не использует вопросы о безопасности
- Разделение пользователя и данных профиля очень хорошо
- Очень разумная модель обеспечения безопасности вокруг неудавшихся попыток входа в систему (хорошая защита от ботов и DoS-атаки)
(Незначительные) Недостатки
- Коды потерянного пароля не хешируются в DB
- Включает собственную (плохую) КАПЧУ, которая хороша для тех, кто не хочет зависеть от reCAPTCHA сервиса, (находящегося в собственности Google), но это действительно не достаточно безопасно
- Очень редкая онлайн-документация (незначительная проблема здесь, так как код приятно документируется и интуитивен),
Загрузите Автора Корпуса здесь
Исходный ответ:
Я реализовал свое собственное также (в настоящее время приблизительно 80%, сделанных после нескольких недель работы). Я попробовал всех другие сначала; Свет FreakAuth, Автор DX, Возвращение, SimpleLogin, SimpleLoginSecure, pc_user, Новый Приводимый в действие, и еще много. Ни один из них не был в нормальном состоянии, IMO, или они испытывали недостаток в основных характеристиках, по сути Небезопасных, или слишком чрезмерно увеличенных в размерах для моего вкуса.
На самом деле я сделал подробную сводку новостей всех библиотек аутентификации для CodeIgniter, когда я проверял их (сразу после Новогоднего). FWIW, я совместно использую его с Вами:
Профессионалы
- Очень полнофункциональный
- Среднее место (25 + файлы), но умеет чувствовать себя довольно тонким
- Превосходная документация, хотя некоторые находятся на немного ломаном английском
- Поддержка файла языка
- reCAPTCHA поддерживается
- Рычаги в систему проверки CI
- Электронные письма активации
- Неактивированные учетные записи автоистекают
- Предлагает grc.com для солей (не плохо для PRNG)
- Запрет с сохраненной 'причиной' строки
- Простая все же эффективная обработка ошибок
Недостатки
- Только позволяет пользователям 'сбросить' потерянный пароль (вместо того, чтобы позволить им выбрать новый после повторной активации)
- Доморощенная псевдомодель событий - благое намерение, но промахивается
- Два поля пароля в пользовательской таблице, плохом стиле
- Использование две таблицы отдельного пользователя (один для 'временных' пользователей - неоднозначный и избыточный)
- Использует потенциально небезопасное хеширование md5
- Неудавшийся вход в систему пытается только сохраненный IP, не именем пользователя - небезопасный!
- Ключ автовхода в систему, не хешированный в базе данных - практически столь же небезопасный как хранение паролей в открытом тексте!
- Ролевая система является полной путаницей: функция is_admin с трудно кодированными ролевыми именами, is_role полная путаница, check_uri_permissions является путаницей, целая таблица полномочий является плохой идеей (URI может изменить и представить незащищенные страницы; полномочия должны всегда храниться точно, где чувствительная логика). Dealbreaker!
- Включает собственную (плохую) КАПЧУ
- интерфейс функции reCAPTCHA грязен
Профессионалы
- Очень полнофункциональный
- Главным образом вполне хорошо зарегистрированный код
- Разделение пользователя и данных профиля является приятной чертой
- Рычаги в систему проверки CI
- Электронные письма активации
- Поддержка файла языка
- Активно разработанный
Недостатки
- Чувства немного чрезмерно увеличены в размере (50 + файлы)
- И все же это испытывает недостаток в автоматическом входе в систему cookie (!)
- Не поддерживает логины и с именем пользователя и с электронной почтой
- Кажется, имеет проблемы с символами UTF-8
- Требует большой автозагрузки (препятствующий производительности)
- Плохо микроуправляемый файл конфигурации
- Ужасное разделение Контроллера Представления, с большой логикой программы в представлениях и выводе, трудно кодированном в контроллеры. Dealbreaker!
- Плохой HTML-код во включенных представлениях
- Включает нестандартную КАПЧУ
- Прокомментированная отладка отзывается эхом везде
- Вызывает определенную структуру папок
- Вынуждает определенную библиотеку Ajax (может быть переключен, но не должен быть там во-первых),
- Никакой макс. предел на попытки входа в систему - ОЧЕНЬ небезопасный! Dealbreaker!
- Налеты формируют проверку
- Использует потенциально небезопасное хеширование md5
Профессионалы
- Хороший набор функций для его крошечного места
- Легкий вес, никакое чрезмерное увеличение размера (3 файла)
- Изящный автоматический вход в систему cookie
- Идет с дополнительной тестовой реализацией (приятная черта)
Недостатки
- Использует старый (менее безопасный) синтаксис базы данных CI
- Не сцепляется в систему проверки CI
- Вид неинтуитивного состояния (роль) система (индексирует вверх тормашками - непрактичный),
- Использует потенциально небезопасное хеширование sha1
Профессионалы
- Маленькое место (6 файлов)
Недостатки
- Испытывает недостаток в большом количестве существенных особенностей. Dealbreaker!
- Все трудно кодируется. Dealbreaker!
Согласно CodeIgniter wiki, было прекращено Возвращение, но Ионное Подлинное ветвление процветает: https://github.com/benedmunds/CodeIgniter-Ion-Auth
Ионный Автор является хорошо известной библиотекой без него являющийся чрезмерно тяжелым или под усовершенствованным. В большинстве случаев его набор функций больше, чем обслужит требования проекта.
Профессионалы
- Легкий и простой интегрироваться с CodeIgniter
- Поддержки, посылающие электронные письма непосредственно из библиотеки
- Хорошо зарегистрированное и хорошее активное dev/user сообщество онлайн
- Простой реализовать в проект
Недостатки
- Более сложная схема DB, чем некоторые другие
- Документация испытывает недостаток в детали в некоторых областях
Профессионалы
- Крошечное место (4 файла)
- Минималистический, абсолютно никакое чрезмерное увеличение размера
- Использование phpass для хеширования (превосходного)
Недостатки
- Только вход в систему, выход из системы, создает и удаляет
- Испытывает недостаток в большом количестве существенных особенностей. Dealbreaker!
- Больше начальной точки, чем библиотека
Не понимайте меня превратно: Я не означаю относиться непочтительно к любой из вышеупомянутых библиотек; я очень впечатлен тем, что выполнили их разработчики и как далеко каждый из них прибыл, и я не выше многократного использования части их кода для создания моего собственного. То, что я говорю, иногда в этих проектах, сдвигах фокуса от существенной 'потребности имущим' (таких как твердые методы безопасности) закончено к 'хорошему имущим' более мягкому, и это - то, что я надеюсь исправить.
Поэтому: назад к основам.
Вот мой МИНИМАЛЬНЫЙ необходимый список функций из библиотеки аутентификации. Это также, оказывается, подмножество списка функций моей собственной библиотеки ;)
- Крошечное место с дополнительной тестовой реализацией
- Полная документация
- Никакая необходимая автозагрузка. Своевременная загрузка библиотек для производительности
- Поддержка файла языка; никакие трудно кодированные строки
- reCAPTCHA, поддерживаемый но дополнительный
- Рекомендуемый TRUE случайное соленое поколение (например, использование random.org или random.irb.hr)
- Дополнительные дополнения для поддержки стороннего входа в систему (OpenID, Подключение Facebook, Google Account, и т.д.)
- Вход в систему с помощью или имени пользователя или электронной почты
- Разделение пользователя и данных профиля
- Электронные письма для активации и потерянных паролей
- Автоматическая функция входа в систему cookie
- Настраиваемый phpass для хеширования (правильно посоливший, конечно!)
- Хеширование паролей
- Хеширование автокодов для входа
- Хеширование кодов потерянного пароля
- Рычаги в систему проверки CI
- НИКАКИЕ вопросы о безопасности!
- Вынужденная серверная сторона политики сильного пароля, с дополнительным, клиентским (JavaScript) блок проверки допустимости
- Вынужденное максимальное количество неудавшегося входа в систему пытается с контрмерами ЛУЧШИХ ПРАКТИК и против словаря и против DoS-атак!
- Весь доступ к базе данных сделан через подготовленные (связанные) операторы!
Примечание: те последние несколько точек не являются излишеством супервысокой безопасности, в котором Вы не нуждаетесь для своего веб-приложения. Если библиотека аутентификации не выполняет эти стандарты обеспечения защиты 100%, НЕ ИСПОЛЬЗУЙТЕ IT!
Недавние высококлассные примеры безответственных кодеров, которые упустили их из их программного обеспечения: № 17 - то, как электронная почта AOL Sarah Palin's была взломана во время Кампании по выборам президента; противная комбинация № 18 и № 19 была преступником недавно, когда аккаунты в Твиттере Britney Spears, Barack Obama, Fox News и других были взломаны; и один только № 20 - то, как китайским хакерам удалось украсть 9 миллионов единиц персональной информации больше чем с 70 000 корейских веб-сайтов в одном автоматизированном взломе в 2008.
Эти нападения не являются хирургией головного мозга. При отъезде черных ходов широко открытыми Вы не должны вводить в заблуждение себя в ложное чувство защищенности путем соединения болтом передней стороны. Кроме того, если Вы достаточно серьезно относитесь к кодированию для выбора платформы лучших практик как CodeIgniter, Вы должны его себе, чтобы, по крайней мере, сделать самые основные меры безопасности правильно.
<напыщенная речь>
В основном вот то, как это: Я не забочусь, предлагает ли подлинная библиотека набор функций, усовершенствованного ролевого управления, совместимости PHP4, симпатичных шрифтов КАПЧИ, таблиц страны, полных панелей администрации, дополнительных свойств - если библиотека на самом деле делает мой сайт менее безопасным, не применяя лучшие методы. Это - пакет аутентификации; это должно сделать ОДНУ вещь правильно: Аутентификация. Если этому не удается сделать это, это на самом деле приносит больше вреда, чем пользы.
</напыщенная речь>
/Jens Roland
Также смотрите на BackendPro
В конечном счете, Вы, вероятно, закончите тем, что писали что-то пользовательское, но нет ничего неправильно с заимствованием понятий от Автора DX, Странного Автора, BackendPro, и т.д.
, Мой опыт с пакетными приложениями, они характерны для определенных структур, и у меня были проблемы при интеграции их в мои собственные приложения, не требуя взломов, тогда если предварительный пакет имеет обновление, я должен переместить их в.
я также использую Присяжного острослова и ADOdb в моем коде CI, так неважно, что я всегда заканчивал бы тем, что внес главными изменениями кода.
Я использую настроенную версию Автор DX . Я нашел простым использовать, чрезвычайно легкий изменить, и это имеет руководство пользователя (с яркими примерами) , который очень похож для Кодирования Воспламенителя.
Возможно, Вы нашли бы Возвращение удовлетворение Вашим потребностям. Это не излишество и прибывает упакованное только пустыми функциями, которых большинство из нас потребовало бы. dev и участники были очень строги на том, какой код был внесен.
Exception of type 'System.OutOfMemoryException' was thrown.
– Jader Dias
23 May 2011 в 19:04
Я - разработчик Автора Возвращения и некоторые проблемы, которые Вы упомянули, были зафиксированы в бете версии 2. Можно загрузить это от offcial веб-сайта с примером приложения также.
- Требует автозагрузки (препятствующий производительности)
- Использование по сути небезопасное понятие 'вопросов о безопасности'. Dealbreaker!
вопросы о безопасности теперь не используются, и более простая система забытого пароля была помещена на месте.
- типы Возврата являются чем-то вроде мешанины истинных, ложных, ошибки и кодов успеха
, Это было зафиксировано в версии 2 и возвращает булевы значения. Я ненавидел мешанину так же как Вы.
- не сцепляется в систему проверки CI
, пример приложения использует систему проверки CI.
- не позволяет пользователю снова посылать код 'потерянного пароля'
происходящая Работа
, я также реализовал некоторые другие опции, такие как почтовые представления, это дает Вам выбор способности использовать помощников CodeIgniter в Ваших электронных письмах.
Это - все еще происходящая работа поэтому, если больше имеют предложения, сохраните их прибытием.
- Попкорн
пз: Спасибо за рекомендацию Возвращения.
File.ReadLines()
, который на самом деле возвращает IEnumerable<string>
и просто делает yield return
из того, что в основном делает его первый отрывок. File.ReadAllLines()
читал бы все строки в память, которая будет ужасной мудрой производительностью. Однако конечно, если Вы делаете , уже имеют массив, который необходимо использовать Length
вместо Count()
;)
– SirViver
24 May 2011 в 05:58
Ion_auth! Выглядит очень многообещающе и занимает мало места! Мне нравится ..
Обратите внимание, что "полный список" Йенса Роланда не включает роли пользователей. Если вас интересует назначение различных ролей пользователей (например, admin/user или admin/editor/user), эти библиотеки позволяют это сделать:
Tank_Auth (#1 выше в списке Дженса) не имеет ролей пользователей. Я понимаю, что это не совсем часть аутентификации, но поскольку
Имеет большой смысл иметь одну библиотеку для обработки обеих, если вам это нужно. Я перехожу на Ion_Auth с Tank_Auth из-за этого.