Хранение лица, не использующего своего права определенные данные приложения по Mac & Linux - Полномочия

Я отправил этот вопрос только что относительно того, где сохранить лицо, не использующее своего права определенные данные приложения по Linux.

Как Вы видите, я намеревался использовать "/Library/Application Поддержку” на Mac и возможно "/var/lib" или "/usr/share" на Linux.

На существующем приложении (только в настоящее время Windows) мы используем “\\ProgramData” на Vista & Windows 7 и “\\Документы и Пользователи Settings\All “на Windows XP (оба полученных использования System.getenv ("ALLUSERSPROFILE"), который не работает над Mac или Linux).

Проблема, которую я нахожу с местоположениями Mac & Linux (в отличие от Windows) состоит в том, что они не доступны некорневыми пользователями / администраторскими пользователями, который вид поражений цель использовать их.

То, какова лучшая практика, является этим случаем? Мы могли просто сохранить данные приложения в корневом каталоге пользователя. Я на самом деле не был бы мертв против этого, поскольку кажется разумным для приложения казаться абсолютно 'новым', когда новый пользователь пытается использовать его. Основная проблема, которую это дает нам, состоит в том, что каждый пользователь должен был бы ввести серийный номер для активации приложения (информация об активации является частью 'данных приложения', которые мы должны сохранить). Это не действительно идеально.

Тем не менее, если нет никакой реальной альтернативы затем, я предполагаю, что это должно будет сделать.

6
задан Community 23 May 2017 в 12:07
поделиться

2 ответа

Прочитали ли вы комментарий в полученном HTML:

Пожалуйста, настройте свой код на скрежет ваш IP-адрес от www.whatismyip.com/automation/n09230945.asp Для получения дополнительной информации, пожалуйста, смотрите наш «Рекомендуемые методы автоматизации» нить в Форуме.

Таким образом, это должно привести к:

using (var client = new WebClient())
{
    Console.WriteLine(client.DownloadString(
        "http://www.whatismyip.com/automation/n09230945.asp"));
}
-121--4903780-

Это может быть достигнуто путем упрощения использования интерфейса автоматизации от www.whatismyip.com, поэтому нет необходимости в каких-либо регексах:

static void Main(string[] args)
    {
        const string url = "http://www.whatismyip.com/automation/n09230945.asp";

        var client = new WebClient();
        try
        {
            var myIp = client.DownloadString(url);
            Console.WriteLine("Your IP: " + myIp);
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error contacting website: " + ex.Message);
        }
    }
-121--4903779-

Что вы имеете в виду под данными приложения, не зависящими от пользователя ?

  • Только для чтения ресурсы, необходимые приложению, например последовательности локализации или значки кнопок:

    • на Mac они хранятся в самом пакете приложений, в подпапке Resources в Linux
    • , они могут храниться вблизи двоичного файла приложения, например, в /opt/< app >/etc .

  • Свойства чтения/записи, такие как серийный номер:

    • можно рассматривать эту информацию как пользовательские данные приложения, поэтому она должна находиться где-то в каталоге $ HOME
    • можно рассматривать эту информацию как общекомпьютерные данные приложения, и в этом случае ее настройка должна выполняться в процессе установки программного обеспечения, т.е. с правами администратора.
4
ответ дан 17 December 2019 в 04:46
поделиться

/ Users / Shared / доступен для записи всем. Тем не менее, , если вам нужно поддерживать лицензии на уровне компьютера , лучшим местом для серийных номеров, IMHO, действительно является / Library / Application Support. Вам нужно будет один раз использовать службы авторизации, чтобы запросить пароль администратора и сохранить там серийный номер. Если пользователю не удается ввести пароль администратора, сохраните серийный номер в ~ / Library / Application Support.

1
ответ дан 17 December 2019 в 04:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: