Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ASP.NET 2.0 Как сделать лицензирование по количеству пользователей?
|
|||
|---|---|---|---|
|
#18+
Привет, Алл! Неоднократно задавал подобные вопросы, но так никто и не ответил. :( МОжет быть сейчас кто-нить поможет, плиз! Итак, есть некоторое приложение (сайт), который хранит некоторые данные в MS SQL сервере 2000. В этой базе есть хранимые процедуры и вьюшки для получения данных из базы. Надо придумать механизм лицензирования сайта по количеству записей n, хранимых в БД. Т.е. в корне сайта будет лежать файл лицензии, сайт должен открыть этот файл, проверить его валидность и ограничить количество записей, с которыми он работает. Сложность в том, что если на сайте ввести ограничение на ввод n+1 записи, то администратору СУБД не составит сложности внести эту запись вручную прямо в БД. :( В голову приходит только одна мысль : перенести все вьюшки (фактически - операторы SELECT) из БД в приложение и добавить к каждому SELECTу параметр TOP :n. Значение n передавать в виде параметра из файла с лицензией после его расшифровки. Т.е. даже если администратор добавит запись вручную - сайт все равно выберет только первые n записей. Есть ли какие-нибудь другие мысли по этому поводу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 10:00 |
|
||
|
ASP.NET 2.0 Как сделать лицензирование по количеству пользователей?
|
|||
|---|---|---|---|
|
#18+
А зачем ограничивать на уровне SELECT'а, когда можно ограничить на уровне логики или на крайняк вывода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 10:16 |
|
||
|
ASP.NET 2.0 Как сделать лицензирование по количеству пользователей?
|
|||
|---|---|---|---|
|
#18+
Если речь касается гридов, то можно сделать пейджинг на нужное кол-во записей и запретить переходить по страницам---------------------------------------- Knowledge is P...O...w...E...R! My site ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 10:44 |
|
||
|
ASP.NET 2.0 Как сделать лицензирование по количеству пользователей?
|
|||
|---|---|---|---|
|
#18+
Странно. Обычно проверяет ограничения тот, кто их устанавливает. Т.е. если установлено ограничение на количество записей, то и проверять это должен SQL-сервер. И хранить настройки на сайты тоже следует там-же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 10:45 |
|
||
|
ASP.NET 2.0 Как сделать лицензирование по количеству пользователей?
|
|||
|---|---|---|---|
|
#18+
Не, проблема в том, что надо по этой таблице провести поиск на предмет совпадения. Представьте себе, что у Вас есть лицензия на 10000 пользователей и соответствующими им уникальными индентификаторами (ИД). Предположим, злостный админ залез через Enterprise Manager и добавил в таблицу 10001 пользователя. Теперь этот 10001 пользователь заходит в систему со своим ИД. На сайте выполняется следующий запрос SELECT COUNT (*) FROM Users WHERE UID=:ID Если полученное число =1, то система пускает юзера. В итоге, этот юзер работает как и все остальные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 10:54 |
|
||
|
ASP.NET 2.0 Как сделать лицензирование по количеству пользователей?
|
|||
|---|---|---|---|
|
#18+
Конечно, можно еще следующим запросом проверить количество записей в таблице Users и если оно больше 10000 то заблокировать нафиг доступ. Но тогда как понять, какой это юзер был по счету, 9999 или 10001, чтобы заблокировать только 10001 пользователя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 10:56 |
|
||
|
ASP.NET 2.0 Как сделать лицензирование по количеству пользователей?
|
|||
|---|---|---|---|
|
#18+
Для начала надо определиться, что есть объект ограничения? Количество пользователей сайта или количество записей в таблице SQL сервера. Это совершенно разные вещи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 12:19 |
|
||
|
ASP.NET 2.0 Как сделать лицензирование по количеству пользователей?
|
|||
|---|---|---|---|
|
#18+
Количество пользователей, которые имеют доступ к сайту на основе Forms-авторизации. Не путать с количеством активных пользователей на сайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 12:22 |
|
||
|
ASP.NET 2.0 Как сделать лицензирование по количеству пользователей?
|
|||
|---|---|---|---|
|
#18+
Т.е. SQL база хранит список этих пользователей и приложение проверяет, есть ли такой пользователь и длина списка должна быть не больше заданной. А как с удалением / добавлением пользователей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 12:35 |
|
||
|
ASP.NET 2.0 Как сделать лицензирование по количеству пользователей?
|
|||
|---|---|---|---|
|
#18+
Смотри. У тебя есть таблица с пользователями. В таблицу ты можешь добавлять/изменять/удалять записи либо через свое приложение (сайт), либо через Enterprise Manager или другую админку СУБД. Но если ты на сайте сделаешь ограничение на кнопку "Добавить" (если в таблице больше 10000 записей, то кнопка не работает), то от редактирования данных через средства администрирования СУБД тебя ничего не спасет. Выход ИМХО один : при входе проверять два условия, что ИД юзера занесен в базу и то, что в таблице меньше n записей. В противном случае блочить доступ ВСЕМ юзерам :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 14:52 |
|
||
|
ASP.NET 2.0 Как сделать лицензирование по количеству пользователей?
|
|||
|---|---|---|---|
|
#18+
Я могу предложить, по крайней мере, пару вариантов, как обойти такую схему просто и криво. Например, удаляем n-ную запись и добавляем свою, проходим аутентификацию, и восстанавливаем запись. Или варианты от этого с использованием view. Если список пользователей есть ключ к работе системы, то никто, кроме системы не должен иметь возможность его изменять. Приблизительно так: В таблице храним порядковый номер пользователя <= n, имя, и хэш имя + пароль + порядковый номер + ключ, который знает только скомпилированная сборка. Таким образом, администратор не может догадаться, какой должен быть хэш, и теряет интерес к вводу новых строк. Если, конечно, он не знаком с дизассемблером. Новый пользователь может быть введен только с порядковым номером <= n и только системой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 15:53 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=33942300&tid=1390219]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 269ms |
| total: | 448ms |

| 0 / 0 |
