Я отправил этот вопрос только что относительно того, где сохранить лицо, не использующее своего права определенные данные приложения по 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) состоит в том, что они не доступны некорневыми пользователями / администраторскими пользователями, который вид поражений цель использовать их.
То, какова лучшая практика, является этим случаем? Мы могли просто сохранить данные приложения в корневом каталоге пользователя. Я на самом деле не был бы мертв против этого, поскольку кажется разумным для приложения казаться абсолютно 'новым', когда новый пользователь пытается использовать его. Основная проблема, которую это дает нам, состоит в том, что каждый пользователь должен был бы ввести серийный номер для активации приложения (информация об активации является частью 'данных приложения', которые мы должны сохранить). Это не действительно идеально.
Тем не менее, если нет никакой реальной альтернативы затем, я предполагаю, что это должно будет сделать.
Прочитали ли вы комментарий в полученном 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- Что вы имеете в виду под данными приложения, не зависящими от пользователя ?
Только для чтения ресурсы, необходимые приложению, например последовательности локализации или значки кнопок:
Resources
в Linux /opt/< app >/etc
.
Свойства чтения/записи, такие как серийный номер:
$ HOME
/ Users / Shared / доступен для записи всем. Тем не менее, , если вам нужно поддерживать лицензии на уровне компьютера , лучшим местом для серийных номеров, IMHO, действительно является / Library / Application Support. Вам нужно будет один раз использовать службы авторизации, чтобы запросить пароль администратора и сохранить там серийный номер. Если пользователю не удается ввести пароль администратора, сохраните серийный номер в ~ / Library / Application Support.