Como desenvolver no C# um sistema que expire a cada 30 dias?

30/03/2011

0

Pessoal, como iniciei nesta linguagem(c#) gostaria de saber como faço para que meu software EXPIRE a cada 30 dias? Desenvolvi um pequeno projeto e preciso testar o software com a tal validação por data. Se puderem conceder um exemplo, poxa, seria ótimamente ótimo.
Utilizo o Server Express 2005; Visual Studio 2010 Ultimate;
Carlos Melo

Carlos Melo

Responder

Post mais votado

31/03/2011

Olha eu nunca fiz isso, mas acredito que as possibilidades seriam essas:

1º Opção: Ajusta a expiração de acordo com a data do windows do clientes, porém o usuário pode simplesmente alterar a data...

2º Opção: Ajustar um time próprio na aplicação que após tantas horas de uso é bloqueado...

3º Opção: Sincronizar o acesso ao seu software por um servidor externo onde é necessário se autenticar..

A 2º opção é a mais válida.
Agora você pode partir para a prática.

Rodrigo Odasaki

Rodrigo Odasaki
Responder

Mais Posts

31/03/2011

Carlos Melo

Olha eu nunca fiz isso, mas acredito que as possibilidades seriam essas:

1º Opção: Ajusta a expiração de acordo com a data do windows do clientes, porém o usuário pode simplesmente alterar a data...

2º Opção: Ajustar um time próprio na aplicação que após tantas horas de uso é bloqueado...

3º Opção: Sincronizar o acesso ao seu software por um servidor externo onde é necessário se autenticar..

A 2º opção é a mais válida.
Agora você pode partir para a prática.
Opa!! Agradeço pela atenção. Condordo contigo. A 2º Opção tem uma lógica um pouco mais adquada para que burlem. Mas no C# não sei fazer; Tô tentando utilizar a lógica. Qualquer novidade postaí... abraçooo
Responder

01/04/2011

Jardel Sobrinho

Eu utilizaria o registro do windows. Quando o programa fosse aberto ele iria verificar se existe uma chave que ficaria escondida dentro do registro do windows. Se ela não existi-se o programa a criaria e colocaria o data atual do sistema. Se ela já existi-se o programa pegaria a data que estava armazenada no registro e iria compará-la com a data atual do sistema. Se fosse maior que 30 dias, ele exibia uma mensagem de bloqueio, se a data do registro for maior que a data atual, quer dizer que a pessoa tentou voltar a data do windows para burlar a segurança e o programa seria bloqueado da mesma forma.
Para trabalhar com o registro do windows, olhe o seguinte tutorial: http://www.linhadecodigo.com.br/artigo/1318/Utilizando-o-Registro-do-Windows-para-gravar-informa%C3%A7%C3%B5es-com-CsharpNet.aspx.
Espero ter ajudado.
Responder

01/04/2011

Carlos Melo

Eu utilizaria o registro do windows. Quando o programa fosse aberto ele iria verificar se existe uma chave que ficaria escondida dentro do registro do windows. Se ela não existi-se o programa a criaria e colocaria o data atual do sistema. Se ela já existi-se o programa pegaria a data que estava armazenada no registro e iria compará-la com a data atual do sistema. Se fosse maior que 30 dias, ele exibia uma mensagem de bloqueio, se a data do registro for maior que a data atual, quer dizer que a pessoa tentou voltar a data do windows para burlar a segurança e o programa seria bloqueado da mesma forma.
Para trabalhar com o registro do windows, olhe o seguinte tutorial: http://www.linhadecodigo.com.br/artigo/1318/Utilizando-o-Registro-do-Windows-para-gravar-informa%C3%A7%C3%B5es-com-CsharpNet.aspx.
Espero ter ajudado.
Opa!! Falaaeee!! Ajudou sim, mano. Pude amplicar um pouco mais a ideia. Era dessa forma que eu estava querendo desenvolver sim. A problemática é que nao sei como implemente um código para que o programa volte a funcionar, em outras palavras, o programa expiraria e eu iria gerar um código e o programa voltasse a operar normalmente.
Responder

03/10/2018

Jair Souza

Eu usei este :
private void Expiracao_Sistema()
        {
            try
            {
                Microsoft.Win32.RegistryKey EncryptedKey;
                RSACryptoServiceProvider crypto = new RSACryptoServiceProvider();
                EncryptedKey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\EncryptedDate");

                object value = EncryptedKey.GetValue("EncryptedDate");

                if (value == null)
                {
                    EncryptedKey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\EncryptedDate");

                    string keyvalue = DateTime.Now.ToString("dd-MMM-yyyy");
                    byte[] messageBytes = Encoding.Unicode.GetBytes(keyvalue);

                    string encryptedMessage = Convert.ToBase64String(messageBytes);

                    EncryptedKey.SetValue("EncryptedDate", encryptedMessage);
                }
                else
                {
                    byte[] encryptedMessage1 = Convert.FromBase64String(value.ToString());

                    string key = System.Text.Encoding.Unicode.GetString(encryptedMessage1);

                    DateTime date = Convert.ToDateTime(key);

                    dataDaExpiracao = date.AddDays(30);

                    dataExpirou = dataDaExpiracao;

                    if (dataAtual >= dataDaExpiracao)
                    {
                        btnFechar.Visible = true;
                        lblMensagem.Visible = true;
                    }
                    else
                    {
                        pbWIDTH = picBoxPB.Width;
                        pbHEIGTH = picBoxPB.Height;

                        pbUnit = pbWIDTH / 100.0;

                        pbCompleto = 0;

                        bmp = new Bitmap(pbWIDTH, pbHEIGTH);

                        t.Interval = 40;
                        t.Tick += new EventHandler(this.t_Tick);
                        t.Start();
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
Responder

03/10/2018

Jair Souza

...iii, somente 7 anos atrasado !
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar