예제 #1
0
        public void SetAutorizzaUtenteTrasferito(decimal idDipendente, ModelDBISE db)
        {
            var dip = db.DIPENDENTI.Find(idDipendente);

            //if (dip.ABILITATO == false)
            //{
            //    dip.ABILITATO = true;
            //}

            //Effettuo una ricerca della matricola che voglio autorizzare per capire se già risulta autorizzata precedentemente.
            var luamAttivoOld = dip.UTENTIAUTORIZZATI;

            if (luamAttivoOld == null || luamAttivoOld.IDDIPENDENTE <= 0)
            {
                UTENTIAUTORIZZATI ua = new UTENTIAUTORIZZATI()
                {
                    IDRUOLOUTENTE = (decimal)EnumRuoloAccesso.Utente,
                    IDDIPENDENTE  = idDipendente,
                    UTENTE        = dip.MATRICOLA.ToString(),
                    PSW           = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["PasswordDefaultTEST"])
                };

                db.UTENTIAUTORIZZATI.Add(ua);

                int i = db.SaveChanges();

                if (i <= 0)
                {
                    throw new Exception("Errore nella fase di autorizzazione dell'utente " + dip.COGNOME + " " + dip.NOME + " (" + dip.MATRICOLA + ")");
                }
            }
        }
예제 #2
0
        public static AccountModel UtenteAutorizzato()
        {
            ClaimsPrincipal currentClaimsPrincipal = ClaimsPrincipal.Current;
            //AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.NameIdentifier;

            AccountModel ac = new AccountModel();

            if (currentClaimsPrincipal.Identity.IsAuthenticated)
            {
                foreach (Claim claim in currentClaimsPrincipal.Claims)
                {
                    if (claim.Type == ClaimTypes.NameIdentifier)
                    {
                        ac.idDipendente = Convert.ToDecimal(claim.Value);
                    }
                    else if (claim.Type == ClaimTypes.Name)
                    {
                        ac.nome = claim.Value;
                    }
                    else if (claim.Type == ClaimTypes.Surname)
                    {
                        ac.cognome = claim.Value;
                    }
                    else if (claim.Type == ClaimTypes.GivenName)
                    {
                        ac.utente = claim.Value;
                    }
                    else if (claim.Type == ClaimTypes.Email)
                    {
                        ac.eMail = claim.Value;
                    }
                    else if (claim.Type == ClaimTypes.Role)
                    {
                        ac.idRuoloUtente = Convert.ToDecimal(claim.Value);
                    }
                }



                if (ac.idRuoloUtente > 0)
                {
                    using (ModelDBISE db = new ModelDBISE())
                    {
                        RUOLOACCESSO ruolo = db.RUOLOACCESSO.Find(ac.idRuoloUtente);
                        if (ruolo != null)
                        {
                            ac.RuoloAccesso = new RuoloAccesoModel()
                            {
                                idRuoloAccesso   = ruolo.IDRUOLOACCESSO,
                                descRuoloAccesso = ruolo.DESCRUOLO
                            };
                        }

                        UTENTIAUTORIZZATI ua = db.UTENTIAUTORIZZATI.Find(ac.idDipendente);
                        DIPENDENTI        d  = ua.DIPENDENTI;

                        if (d?.IDDIPENDENTE > 0)
                        {
                            ac.idDipendente = d.IDDIPENDENTE;

                            DipendentiModel dm = new DipendentiModel()
                            {
                                idDipendente        = d.IDDIPENDENTE,
                                matricola           = d.MATRICOLA,
                                nome                = d.NOME,
                                cognome             = d.COGNOME,
                                dataAssunzione      = d.DATAASSUNZIONE,
                                dataCessazione      = d.DATACESSAZIONE,
                                indirizzo           = d.INDIRIZZO,
                                cap                 = d.CAP,
                                citta               = d.CITTA,
                                provincia           = d.PROVINCIA,
                                email               = d.EMAIL,
                                telefono            = d.TELEFONO,
                                fax                 = d.FAX,
                                abilitato           = d.ABILITATO,
                                dataInizioRicalcoli = d.DATAINIZIORICALCOLI
                            };

                            ac.Dipendenti = dm;
                        }
                    }
                }
            }

            return(ac);
        }