Пока у них есть доступ и к зашифрованным данным и к программному обеспечению, которое дешифрует его, нет в основном никакого способа, которым можно сделать это абсолютно безопасным. Путями это было решено, прежде должен использовать некоторую форму внешнего черного квадрата для обработки шифрования/дешифрования, как аппаратные ключи, серверы удаленной аутентификации, и т.д. Но даже тогда, учитывая, что у пользователя есть полный доступ к их собственной системе, это только делает вещи трудными, не невозможный - если Вы не можете связать свой продукт непосредственно с функциональностью, сохраненной в "черном квадрате", как, скажем, онлайн играющие серверы.
Статические переменные действительны для всего AppDomain. При закрытии браузера вы не закрываете приложение, поскольку оно продолжает выполняться на веб-сервере. Да и забыл упомянуть: старайтесь избегать использования статических переменных в многопоточных приложениях без надлежащих механизмов блокировки, иначе вы можете столкнуться с условиями гонки.
Статические переменные сохраняют свои значения на протяжении всего домена приложения.
Они выдерживают многие сеансы браузера, пока вы не перезапустите веб-сервер (IIS) или пока он не перезапустится сам по себе (когда он решит, что ему необходимо обновить используемые ресурсы).
Статические переменные действительны для весь AppDomain.
Закрытие VS 2008 IDE и / или остановка отладки не всегда достаточно, чтобы заставить AppDomain, на котором размещен ваш сайт, перестать работать. (Даже если веб-сайт размещен на сервере тестов Vs 2008.
Одно простое решение - "прикоснуться" к файл web.config. (Например, добавьте пробел и сохраните его)
При этом следующий запрос будет обработан в новом домене приложения.