237 lines
8.3 KiB
C#
237 lines
8.3 KiB
C#
using MapoDb;
|
|
using SteamWare;
|
|
using System;
|
|
using System.Web;
|
|
using System.Web.UI;
|
|
|
|
namespace MoonProTablet.WebUserControls
|
|
{
|
|
public partial class mod_title : BaseUserControl
|
|
{
|
|
#region Protected Fields
|
|
|
|
/// <summary>
|
|
/// IP corrente
|
|
/// </summary>
|
|
protected string postazione_IP = "";
|
|
|
|
/// <summary>
|
|
/// user agent corrente
|
|
/// </summary>
|
|
protected string userAgent = "";
|
|
|
|
#endregion Protected Fields
|
|
|
|
#region Protected Properties
|
|
|
|
/// <summary>
|
|
/// Versione corrente sw
|
|
/// </summary>
|
|
protected Version currVersion
|
|
{
|
|
get
|
|
{
|
|
return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// URL stringa di UPDATE...
|
|
/// </summary>
|
|
protected string updateUrl
|
|
{
|
|
get
|
|
{
|
|
return string.Format("https://nexus.steamware.net/repository/SWS/TAB/{0}/manifest.xml", memLayer.ML.CRS("appVers"));
|
|
}
|
|
}
|
|
|
|
#endregion Protected Properties
|
|
|
|
#region Public Properties
|
|
|
|
/// <summary>
|
|
/// Cognome Nome utente
|
|
/// </summary>
|
|
public string CognomeNome
|
|
{
|
|
get
|
|
{
|
|
string swData = "";
|
|
string cognomeNome = "";
|
|
try
|
|
{
|
|
cognomeNome = user_std.UtSn.CognomeNome;
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
logger.lg.scriviLog($"Eccezione in {titolo} recupero CognomeNome: {Environment.NewLine}{exc}", tipoLog.EXCEPTION);
|
|
}
|
|
if (DataLayerObj.MatrOpr > 0)
|
|
{
|
|
swData = DataLayerObj.CognomeNomeOpr;
|
|
}
|
|
else if (cognomeNome != "")
|
|
{
|
|
swData = cognomeNome;
|
|
}
|
|
else
|
|
{
|
|
swData = "MoonProTablet";
|
|
}
|
|
return swData;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Cognome Nome utente
|
|
/// </summary>
|
|
public string MatrOpr
|
|
{
|
|
get
|
|
{
|
|
return DataLayerObj.MatrOpr.ToString();
|
|
}
|
|
}
|
|
|
|
#endregion Public Properties
|
|
|
|
#region Private Methods
|
|
|
|
/// <summary>
|
|
/// verifica al presenza di un cookie VALIDO per autorizzare il device
|
|
/// </summary>
|
|
private void checkAuthCookieMoonProTablet()
|
|
{
|
|
Page page = this.Page;
|
|
Uri MyUrl = Request.Url;
|
|
string delimStr = "/";
|
|
char[] delimiter = delimStr.ToCharArray();
|
|
string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter);
|
|
int n = finalUrl.Length;
|
|
string _paginaCorrente = finalUrl[n - 1].ToString().Replace(".aspx", "");
|
|
try
|
|
{
|
|
string cookieName = memLayer.ML.CRS("cookieName");
|
|
HttpCookie cookie = Request.Cookies[cookieName];
|
|
if (cookie == null || string.IsNullOrEmpty(cookie.Value))
|
|
{
|
|
// rimando pagina x registrazione devices
|
|
logger.lg.scriviLog($"Cookie non valido / non trovato | {cookieName}", tipoLog.STARTUP);
|
|
// solo se NON sono alla pagina di registrazione o altre SAFE pages......
|
|
if (memLayer.ML.CRS("safePages").ToLower().IndexOf(_paginaCorrente.ToLower()) < 0)
|
|
{
|
|
Response.Redirect("~/regNewDevice", false);
|
|
HttpContext.Current.ApplicationInstance.CompleteRequest();
|
|
page.Visible = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// ricavo utente da cookie...
|
|
string devSecret = cookie.Value;
|
|
DS_devices.AnagDevicesRow device = null;
|
|
// cerco il device...ogni dipendente può averne + di 1 registrato a suo nome...
|
|
string UsrName = "";
|
|
string Dominio = "";
|
|
try
|
|
{
|
|
logger.lg.scriviLog($"Cookie trovato con devSecret {devSecret}", tipoLog.STARTUP);
|
|
device = DataWrap.DW.taAnagDev.getByDeviceSecret(devSecret)[0];
|
|
UsrName = device.User_Name;
|
|
Dominio = device.Dominio;
|
|
DataLayerObj.MatrOpr = device.MatrOpr; // salvo MatrOpr!
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
logger.lg.scriviLog($"Errore recupero dati da cookie:{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
|
|
}
|
|
if (!string.IsNullOrEmpty(UsrName) && !string.IsNullOrEmpty(Dominio))
|
|
{
|
|
logger.lg.scriviLog($"Dati utente da cookie: dominio {Dominio}, user:{UsrName}", tipoLog.STARTUP);
|
|
// aggiorno descrizione (user agent) ed IP...
|
|
userAgent = Request.UserAgent;
|
|
postazione_IP = Request.UserHostName;
|
|
// controllo IP e DeviceDescription x eventuale update
|
|
if ((device.lastIPv4 != postazione_IP) || (device.Description != userAgent))
|
|
{
|
|
// salvo ultimo "contatto" del device aggiornando descrizione ed IP
|
|
DataWrap.DW.taAnagDev.updateIP(device.IdxDevice, DateTime.Now, postazione_IP, userAgent);
|
|
}
|
|
// avvio utente...
|
|
user_std.UtSn.startUpUtente(Dominio, UsrName);
|
|
}
|
|
else
|
|
{
|
|
// svuoto cookie...
|
|
memLayer.ML.emptyCookieVal(memLayer.ML.CRS("cookieName"));
|
|
// rimando pagina x registrazione devices
|
|
logger.lg.scriviLog($"Dominio / UsrName non validi / non trovati:{Environment.NewLine}devSec:{devSecret}{Environment.NewLine}UsrName{UsrName}{Environment.NewLine}Dominio{Dominio}", tipoLog.STARTUP);
|
|
Response.Redirect("~/regNewDevice.aspx", false);
|
|
HttpContext.Current.ApplicationInstance.CompleteRequest();
|
|
page.Visible = false;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
logger.lg.scriviLog($"Errore in checkAuthCookie:{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
|
|
}
|
|
}
|
|
|
|
#endregion Private Methods
|
|
|
|
#region Protected Methods
|
|
|
|
/// <summary>
|
|
/// caricamento pagina
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!Page.IsPostBack)
|
|
{
|
|
// prima apertura registro NO popup = refresh enabled
|
|
memLayer.ML.setSessionVal("refreshEnabled", true);
|
|
}
|
|
// se ho user/dominio e matricola in sessione NON controllo coockie
|
|
if (user_std.UtSn.utente == "" || user_std.UtSn.dominio == "" || DataLayerObj.MatrOpr == 0)
|
|
{
|
|
// altrimenti controllo se c'è utente in sessione..
|
|
checkAuthCookieMoonProTablet();
|
|
}
|
|
}
|
|
|
|
#endregion Protected Methods
|
|
|
|
#region Public Methods
|
|
|
|
/// <summary>
|
|
/// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE
|
|
/// </summary>
|
|
/// <param name="navUrl"></param>
|
|
/// <returns></returns>
|
|
public string checkPage(object navUrl)
|
|
{
|
|
string answ = "";
|
|
if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", ""))
|
|
{
|
|
answ = "active btn-primary";
|
|
}
|
|
return answ;
|
|
}
|
|
|
|
public string isActive(object pageName)
|
|
{
|
|
string answ = "";
|
|
if (true)
|
|
{
|
|
answ = "active";
|
|
}
|
|
return answ;
|
|
}
|
|
|
|
#endregion Public Methods
|
|
}
|
|
} |