125 lines
3.7 KiB
C#
125 lines
3.7 KiB
C#
using Thermo.Active.NC;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Thermo.Active.UI
|
|
{
|
|
public partial class PasswordForm : Form
|
|
{
|
|
private NcAdapter Nc;
|
|
private String Matricola;
|
|
private DateTime Licenza;
|
|
const long BASETIME = 730119; // 1/1/2000
|
|
|
|
public PasswordForm()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
public void setNcData(String matr, NcAdapter Nch)
|
|
{
|
|
this.Matricola = matr;
|
|
this.Text = "Password - " + this.Matricola;
|
|
this.Nc = Nch;
|
|
}
|
|
|
|
private void Cancel_Pwd_Button_Click(object sender, EventArgs e)
|
|
{
|
|
this.DialogResult = DialogResult.Cancel;
|
|
this.Close();
|
|
}
|
|
|
|
private void OK_Pwd_Button_Click(object sender, EventArgs e)
|
|
{
|
|
checkPSW(TextBox_Password.Text);
|
|
}
|
|
|
|
private void PasswordForm_Load(object sender, EventArgs e)
|
|
{
|
|
TextBox_Password.Text = "";
|
|
ErrorProvider1.Clear();
|
|
this.ActiveControl = TextBox_Password;
|
|
}
|
|
|
|
private void TextBox_Password_KeyDown(object sender, KeyEventArgs e)
|
|
{
|
|
if (e.KeyCode == Keys.Enter)
|
|
{
|
|
checkPSW(TextBox_Password.Text);
|
|
}
|
|
}
|
|
|
|
private void checkPSW(String psw)
|
|
{
|
|
bool bValid = false;
|
|
|
|
//Password storica. Serve per abilitare funzionalità particolari
|
|
if (psw == "cmsserviceonly")
|
|
bValid = true;
|
|
|
|
else if (Utils.CandiesController.LincensePasswordDecode(psw, out string MatricolaString, out int MatricolaNumerica, out int Command, out long Parameter))
|
|
|
|
//Controllo la matricola
|
|
if (this.Matricola != MatricolaString)
|
|
bValid = false;
|
|
else
|
|
{
|
|
switch (Command)
|
|
{
|
|
//password del service
|
|
case 1: bValid = true;break;
|
|
|
|
//SET Licenza Temporanea
|
|
case 2:
|
|
if(Nc != null)
|
|
{
|
|
Licenza = new DateTime(Parameter * TimeSpan.TicksPerDay);
|
|
Nc.WriteCandy(Licenza, MatricolaNumerica);
|
|
bValid = false;
|
|
}
|
|
break;
|
|
|
|
//SET Licenza Illimitata
|
|
case 3:
|
|
if (Nc != null)
|
|
{
|
|
Licenza = new DateTime(0);
|
|
Nc.WriteCandy(Licenza, MatricolaNumerica);
|
|
bValid = false;
|
|
}
|
|
break;
|
|
|
|
}
|
|
bValid = false;
|
|
}
|
|
else
|
|
bValid = false;
|
|
|
|
if (!bValid)
|
|
{
|
|
long nLic = Licenza.Ticks / TimeSpan.TicksPerDay;
|
|
string szError;
|
|
|
|
if (nLic == BASETIME)
|
|
szError = "Error #H-OO";
|
|
else
|
|
szError = "Error #H-" + nLic.ToString();
|
|
ErrorProvider1.SetError(TextBox_Password, "INVALID PASSWORD" + Environment.NewLine + szError);
|
|
}
|
|
else
|
|
{
|
|
this.DialogResult = DialogResult.OK;
|
|
this.Close();
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|