diff --git a/MP-MAG/SMART/login.aspx.cs b/MP-MAG/SMART/login.aspx.cs
index 44c6e657..2e9349b7 100644
--- a/MP-MAG/SMART/login.aspx.cs
+++ b/MP-MAG/SMART/login.aspx.cs
@@ -1,4 +1,5 @@
-using SteamWare;
+using MapoDb;
+using SteamWare;
using SteamWare.Logger;
using System;
using System.Collections.Generic;
@@ -11,6 +12,29 @@ namespace MP_MAG.SMART
{
public partial class login : UserPage
{
+ #region Protected Fields
+
+ ///
+ /// IP corrente
+ ///
+ protected string postazione_IP = "";
+
+ ///
+ /// user agent corrente
+ ///
+ protected string userAgent = "";
+
+ #endregion Protected Fields
+
+ #region Internal Fields
+
+ ///
+ /// Oggetto datalayer specifico
+ ///
+ internal DataLayer DataLayerObj = new DataLayer();
+
+ #endregion Internal Fields
+
#region Protected Properties
///
@@ -66,6 +90,72 @@ namespace MP_MAG.SMART
#region Private Methods
+ ///
+ /// verifica al presenza di un cookie VALIDO per autorizzare il device (operatore SENZA email)
+ ///
+ private bool checkAuthCookieNoEmail()
+ {
+ bool checkOk = false;
+ try
+ {
+ HttpCookie cookie = Request.Cookies[memLayer.ML.CRS("cookieName")];
+ if (cookie == null || string.IsNullOrEmpty(cookie.Value))
+ {
+ // rimando pagina x registrazione devices
+ logger.lg.scriviLog("Cookie non valido / non trovato", tipoLog.STARTUP);
+ }
+ 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);
+ checkOk = true;
+ }
+ 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);
+ }
+ }
+ }
+ catch (Exception exc)
+ {
+ logger.lg.scriviLog($"Errore in checkAuthCookie:{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
+ }
+ return checkOk;
+ }
+
///
/// verifica che la pagina sia tra quelle autorizzate x l'utente
///
@@ -91,6 +181,11 @@ namespace MP_MAG.SMART
// provo con authCookiecookie device...
allOk = devicesAuthProxy.stObj.checkAuthCookie();
}
+ if (!allOk)
+ {
+ // provo con authCookie modalità senza email (come MP TAB...)
+ allOk = checkAuthCookieNoEmail();
+ }
else
{
// per sicurezza startup
@@ -160,6 +255,11 @@ namespace MP_MAG.SMART
logger.lg.scriviLog($"Login completed for user {devicesAuthProxy.stObj.email}");
Response.Redirect("Default");
}
+ else if (user_std.UtSn.isAuth)
+ {
+ logger.lg.scriviLog($"Login completed for user {user_std.UtSn.CognomeNomeMatr}");
+ Response.Redirect("Default");
+ }
else
{
string usrHostAddr = Request.UserHostAddress;
diff --git a/MP-MAG/Web.config b/MP-MAG/Web.config
index a0c09609..7feab210 100644
--- a/MP-MAG/Web.config
+++ b/MP-MAG/Web.config
@@ -17,8 +17,17 @@
+
+
+
+
+
+
+
+
+
@@ -37,6 +46,9 @@
+
+
+
diff --git a/MP-MAG/WebUserControls/cmp_footer.ascx.cs b/MP-MAG/WebUserControls/cmp_footer.ascx.cs
index 9ad40494..6c8d05c8 100644
--- a/MP-MAG/WebUserControls/cmp_footer.ascx.cs
+++ b/MP-MAG/WebUserControls/cmp_footer.ascx.cs
@@ -19,8 +19,8 @@ namespace MP_MAG.WebUserControls
private void setClock()
{
lblDateTime.Text = DateTime.Now.ToString("ddd dd.MM.yyyy, HH:mm:ss");
- //lblCodOperatore.Text = $"{user_std.UtSn.CognomeNome} ({Page.User.Identity.Name})";
- lblCodOperatore.Text = $"{Page.User.Identity.Name}";
+ lblCodOperatore.Text = $"{user_std.UtSn.CognomeNomeMatr}";
+ //lblCodOperatore.Text = $"{Page.User.Identity.Name}";
}
///
diff --git a/MP-MAG/WebUserControls/cmp_menuTop.ascx.cs b/MP-MAG/WebUserControls/cmp_menuTop.ascx.cs
index b255e5fb..c38cc2cb 100644
--- a/MP-MAG/WebUserControls/cmp_menuTop.ascx.cs
+++ b/MP-MAG/WebUserControls/cmp_menuTop.ascx.cs
@@ -110,7 +110,7 @@ namespace MP_MAG.WebUserControls
{
if (safePages.IndexOf(Request.Url.Segments.LastOrDefault(), StringComparison.OrdinalIgnoreCase) < 0)
{
- Response.Redirect("login");
+ Response.Redirect("login", true);
}
XmlMenu.Data = File.ReadAllText(Server.MapPath("/Resources/DefaultMenu.xml"));
}
@@ -121,7 +121,7 @@ namespace MP_MAG.WebUserControls
XmlMenu.XPath = "mainMenu/menu";
XmlMenu.DataBind();
}
- catch
+ catch (Exception exc)
{
if (safePages.IndexOf(Request.Url.Segments.LastOrDefault(), StringComparison.OrdinalIgnoreCase) < 0)
{
diff --git a/MapoDb/DataLayer.cs b/MapoDb/DataLayer.cs
index 454adc46..15d1b40e 100644
--- a/MapoDb/DataLayer.cs
+++ b/MapoDb/DataLayer.cs
@@ -1420,27 +1420,29 @@ namespace MapoDb
}
else
{
- logger.lg.scriviLog(string.Format("non sono riuscito a recuperare RIGA utente per matricola {0}", matricola), tipoLog.ERROR);
+ logger.lg.scriviLog($"Non sono riuscito a recuperare RIGA utente per matricola {matricola}", tipoLog.ERROR);
}
}
catch
{
- logger.lg.scriviLog(string.Format("Eccezione! non sono riuscito a recuperare utente per matricola {0}", matricola), tipoLog.ERROR);
+ logger.lg.scriviLog($"Eccezione! non sono riuscito a recuperare utente per matricola {matricola}", tipoLog.ERROR);
Dominio = memLayer.ML.CRS("dominio");
UsrName = memLayer.ML.CRS("user");
}
+ string cookieName = memLayer.ML.CRS("cookieName");
+ DateTime expDate = DateTime.Now.AddDays(memLayer.ML.CRI("cookieDayExpire"));
string Secret = authProxy.getSecret(Dominio, UsrName, matricola, DeviceName, adesso);
- string devSecret = SteamCrypto.EncryptString(Secret, memLayer.ML.CRS("cookieName"));
+ string devSecret = SteamCrypto.EncryptString(Secret, cookieName);
try
{
// creo device + cookie!
- fatto = authProxy.createNewCookie(Dominio, UsrName, matricola, DeviceName, Description, IPv4, memLayer.ML.CRS("cookieName"), DateTime.Now.AddDays(memLayer.ML.CRI("cookieDayExpire")));
+ fatto = authProxy.createNewCookie(Dominio, UsrName, matricola, DeviceName, Description, IPv4, cookieName, expDate);
// loggo!
- logger.lg.scriviLog(string.Format("Effettuato enroll nuovo device: utente {0}\\{1} | matricola {2} | DeviceName {3} | Descrizione {4} | IP {5} | nome cookcie {6} | valido sino a {7:yyyy/MM/dd}", Dominio, UsrName, matricola, DeviceName, Description, IPv4, memLayer.ML.CRS("cookieName"), DateTime.Now.AddDays(memLayer.ML.CRI("cookieDayExpire"))));
+ logger.lg.scriviLog(string.Format("Effettuato enroll nuovo device: utente {0}\\{1} | matricola {2} | DeviceName {3} | Descrizione {4} | IP {5} | nome cookie {6} | valido sino a {7:yyyy/MM/dd HH:mm:ss}", Dominio, UsrName, matricola, DeviceName, Description, IPv4, cookieName, expDate));
}
catch (Exception exc)
{
- logger.lg.scriviLog(string.Format("Errore enroll nuovo device:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
+ logger.lg.scriviLog($"Errore enroll nuovo device:{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
}
}
return fatto;