public ActionResult Download(int id) { var documento = Context.Documenti.Where(w => w.IdDocumento == id).FirstOrDefault(); MyUserIdentity currentIdentity = HttpContext.User.Identity as MyUserIdentity; //TODO : Verificare se l'utente attualmente loggato ha i privilegi per scaricare //questo documento if (documento == null) { //Il documento non esiste, devo restituire un messaggio di errore return(new HttpStatusCodeResult(500, "Documento non esistente")); } // il Download deve essere registrato solo se l'utente è un Fornitore if (currentIdentity.CurrentUser.Ruolo.DescrizioneRuolo == "Fornitore") { Context.Download.Add(new Download { IdDocumento = id, IdFornitore = currentIdentity.CurrentUser.IdFornitore.Value, DataDownload = DateTime.Now }); Context.SaveChanges(); } return(File(documento.Contenuto, documento.ContentType));//,documento.NomeFile); }
public override void OnAuthorization(AuthorizationContext filterContext) { if (filterContext.RequestContext.HttpContext.User.Identity.IsAuthenticated == false) { filterContext.Result = new HttpUnauthorizedResult(); return; } MyUserIdentity currentIdentity = filterContext.RequestContext.HttpContext.User.Identity as MyUserIdentity; if (!String.IsNullOrEmpty(UserFunctions)) { //Se ho impostato l'accesso mediante privilegi, allora li verifico, altrimenti passa e si effettueranno i controlli //standard dell'authorize attribute /* TODO : Mettere i privilegi su una tabella del database e salvarli all'ìnterno del ticket di autenticazione (Cookie)*/ List <String> currentUserFunctions = new List <string>(); switch (currentIdentity.Name) { case "*****@*****.**": currentUserFunctions.Add("Utenti.Edit"); break; } string[] listOfNeededFunctions = UserFunctions.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); bool isUserEnabled = false; foreach (var function in listOfNeededFunctions) { if (currentUserFunctions.Contains(function)) { isUserEnabled = true; break; } } if (isUserEnabled == false) { filterContext.Result = new HttpUnauthorizedResult(); return; } } base.OnAuthorization(filterContext); }
public ActionResult Index(int?paginaCorrente) { DocumentiIndexViewModel vm; MyUserIdentity currentIdentity = HttpContext.User.Identity as MyUserIdentity; if (currentIdentity.CurrentUser.Ruolo.DescrizioneRuolo == "Fornitore") { vm = DocumentiIndexViewModel.Load(Context, paginaCorrente.HasValue ? paginaCorrente.Value : 1, PageSize, (Documento doc) => doc.Attivo && doc.IdFornitore == currentIdentity.CurrentUser.IdFornitore.Value, true); } else { vm = DocumentiIndexViewModel.Load(Context, paginaCorrente.HasValue ? paginaCorrente.Value : 1, PageSize, (Documento doc) => doc.Attivo, false); } return(View(vm)); }
public static MvcHtmlString Menu(this HtmlHelper helper, List <Funzione> funzioni) { //Sto creando un tag ul TagBuilder ul = new TagBuilder("ul"); //Aggiungo la classe sidebar-menu al tag ul ul.AddCssClass("sidebar-menu"); //Aggiungo la classe tree al tag ul ul.AddCssClass("tree"); ul.MergeAttribute("data-widget", "tree"); MyUserIdentity currentIdentity = HttpContext.Current.User.Identity as MyUserIdentity; int currentIdRuolo = currentIdentity.CurrentUser.IdRuolo; foreach (var funzione in funzioni.Where(f => f.IdRuolo == currentIdRuolo || f.IdRuolo == null)) { AddLi(helper, ul, funzione); } return(new MvcHtmlString(ul.ToString())); }