Pergunta
Eu tenho uma dúvida em licenciamento. Eu estou usando C # aplicação. Cenário: O usuário recebe a licença para a aplicação através de correio na forma de arquivo. Ele / Ela armazena o arquivo de licença na área de trabalho. Mais tarde, ele / ela escolhe o registo de licença e clique. Agora, o aplicativo é registrado (licenciado). Depois de alguns dias, se o usuário exclui o arquivo de licença da Área de Trabalho. O aplicativo irá parar de funcionar uma vez que não há nenhum arquivo. Eu quero armazenar os detalhes da licença em algum lugar no Registro ou arquivo (caminho secreto). Mas E se essa conta de usuário não tem permissão suficiente para ler / Registro de gravação ou arquivo. Qual é o bom caminho? Vocês sabem qualquer outro método? Sou novato nesta área. Então, por favor me ajude.
Agradecemos antecipadamente.
Solução
Todos os dados de aplicativo deve ser armazenado na pasta% AppData% diretório.
Uma vez que você especificou C #, aqui está o código para obter a pasta:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
A saída será no seguinte local: No XP: C: Documents / and Settings / nome de usuário / Application Data / No Vista: C: / Users / nome de usuário / AppData / Roaming
Eu recomendo que você crie uma pasta no diretório para a sua aplicação e copiar lá.
Outras dicas
Microsoft tem algumas sugestões para locais de armazenamento no Windows Vista:. Certificação Aplicação e compatibilidade de documentos
Assim, dados se ele [o programa] está sempre mudando compartilhada (não CODE), então ele [os dados] devem logicamente ir para a pasta ProgramData. Se for dados individuais, então ele pode ir para o perfil do usuário.
Nós usamos um arquivo de licença e armazená-lo na pasta ProgramData \ CompanyName. Mas nossas licenças são em uma base por máquina, não um por usuário. Por padrão, essa pasta está oculta no Windows, mas não é protegido por UAC.
Como alguém me disse há algum tempo: "O registro é para a interação da aplicação com o sistema, não para a interação da aplicação com o usuário." Eu não sei se este é o caminho certo para ver as coisas. I utilizado para armazenar informações do usuário no registro também, mas não mais. Colocar as configurações em um arquivo é o melhor caminho. Se você deseja armazenar coisas como números de série não se esqueça de cripta-los.
Absolutamente, escrita para o registro provavelmente deve ser evitado neste caso, especialmente se a licença pode ser excluído, adicionados ou alterados na forma como você parece estar descrevendo. Se as licenças é feito para ser trocado ou mudado de alguma forma após a instalação, pode ser melhor para escrevê-lo em um arquivo. Embora, eu geralmente não recomendo escrever qualquer tipo de arquivo crítico ou dados como esse para o desktop. Eu provavelmente escrevê-lo para uma pasta contida dentro de um diretório do próprio aplicativo. Incluí-lo em sua instalação do aplicativo se ele é que necessário.