/// <summary> /// /// </summary> /// <param name="username"></param> /// <param name="password"></param> /// <returns></returns> public override bool ValidateUser(string username, string password) { bool result = false; if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)) { return(false); } using (ExtranetDB dbContext = new ExtranetDB()) { var user = (from us in dbContext.Users where string.Compare(username, us.Username, StringComparison.OrdinalIgnoreCase) == 0 && string.Compare(password, us.Password, StringComparison.OrdinalIgnoreCase) == 0 && us.IsActive == true select us).FirstOrDefault(); result = (user != null) ? true : false; } if (!result) { using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "DELLORTO.IT")) { // validate the credentials result = pc.ValidateCredentials(username, password, ContextOptions.Negotiate); } } return(result); }
public ActionResult Report(string sEmail, string sOggetto, string sDescrizione) { var iD = ""; MailMessage mail = new MailMessage("*****@*****.**", "*****@*****.**"); //mail.To.Add("*****@*****.**"); //mail.To.Add("*****@*****.**"); using (ExtranetDB dbContext = new ExtranetDB()) { TicketWB nt = new TicketWB(); int dToday = Int32.Parse(DateTime.Now.ToString("yyyyMMdd")); nt.Data = dToday; dbContext.TicketWB.Add(nt); dbContext.SaveChanges(); iD = dbContext.TicketWB.Max(a => a.ID_Ticket).ToString(); } SmtpClient client = new SmtpClient(); client.Port = 25; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.UseDefaultCredentials = false; client.Host = "mail.dellorto.it"; mail.Subject = "Nuova segnalazione (ID: " + iD + "): " + sOggetto; mail.Body = sDescrizione + Environment.NewLine + "(" + sEmail + ")"; client.Send(mail); return(View()); }
[Route("api/file/load/{*folder?}")]//{username}")] public IHttpActionResult Load(string folder = "") { FTPabilitazioni utente = db.FTPabilitazioni.Where(e => e.ftpUser == User.Identity.Name).FirstOrDefault(); Boolean bCheck = false; if (utente == null) { return(Content(HttpStatusCode.NoContent, "Abilitazione non trovata")); } var nodes = new List <FtpModel>(); string sDir = "C:\\inetpub\\wwwroot\\FTP"; if (folder == "") { //FTPabilitazioni utente = db.FTPabilitazioni.Where(e => e.ftpUser == User.Identity.Name).FirstOrDefault(); nodes.Add(new FtpModel() { FileName = "FTP", Folder = "#", Type = "Folder", ReadWrite = "R" }); var data = DirSearch(sDir, nodes); } else { folder = folder.Replace("#/", ""); folder = folder.Replace('/', Path.DirectorySeparatorChar); string cartella = (sDir + "\\" + folder); string cartellaAttuale = cartella.Substring(sDir.Length + 1); string[] percorso = cartellaAttuale.Split(Path.DirectorySeparatorChar); string sRight; using (ExtranetDB dbContext = new ExtranetDB()) { string toCheck = percorso[0]; UserShares abilitazioni = dbContext.UserShares.Where(e => e.username == User.Identity.Name && e.SharePath == toCheck).FirstOrDefault(); if (abilitazioni != null) { bCheck = true; } sRight = abilitazioni.abilitazione; } if (bCheck == false) { return(Content(HttpStatusCode.NoContent, "404")); } DirectoryInfo nomeFolder = new DirectoryInfo(cartella); nodes.Add(new FtpModel() { FileName = nomeFolder.Name, Folder = folder, Type = "Folder", Size = GetDirectorySize(nomeFolder.FullName).ToString(), ReadWrite = sRight }); var data = DirSearch(cartella, nodes); } return(Ok(nodes));//, System.Web.Mvc.Jso.nRequestBehavior.AllowGet); }
public override bool ChangePassword(string username, string oldPassword, string newPassword) { using (ExtranetDB dbContext = new ExtranetDB()) { var userp = dbContext.Users.Where(x => x.Username == username).FirstOrDefault(); userp.Password = newPassword; dbContext.Entry(userp).State = EntityState.Modified; dbContext.SaveChanges(); return(true); } }
public override string GetUserNameByEmail(string email) { using (ExtranetDB dbContext = new ExtranetDB()) { string username = (from u in dbContext.Users where string.Compare(email, u.Email) == 0 select u.Username).FirstOrDefault(); return(!string.IsNullOrEmpty(username) ? username : string.Empty); } }
//public ActionResult Download(string id) //{ // try // { // string filePath = id; // filePath = filePath.Substring(5); // filePath = filePath.Replace('/', '\\'); // // System.Diagnostics.Debugger.Break(); // //byte[] fileBytes = System.IO.File.ReadAllBytes(@"c:\folder\myfile.ext"); // byte[] fileBytes = System.IO.File.ReadAllBytes(@"C:\\inetpub\\wwwroot\\Condivisione\\" + filePath); // string fileName = filePath.Substring(filePath.LastIndexOf('\\') + 1); // return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); // } // catch (System.Exception e) // { // Console.WriteLine(e.Message); // return View(); // } //} public ActionResult FTPmain() { using (ExtranetDB dbContext = new ExtranetDB()) { FTPabilitazioni utente = dbContext.FTPabilitazioni.Where(e => e.ftpUser == User.Identity.Name).FirstOrDefault(); //ICollection<UserShares> test = dbContext.UserShares.Where(e => e.username == utente.ftpUser).ToList(); //ICollection<UserShares> test2 = dbContext.UserShares.Where(e => e.username == User.Identity.Name).ToList(); var bubu = utente.UserShares; var tt = dbContext.Shares.Where(e => e.ShareID == 4).Select(e => e.UserShares).ToList(); //var bubu7 = dbContext.UserShares.Where(e => e.username == "paolo.oliva").ToList(); var yoghi = bubu.Select(e => e.Shares.SharePath).ToList(); } return(View()); }
/// <summary> /// /// </summary> /// <param name="username"></param> /// <param name="userIsOnline"></param> /// <returns></returns> public override MembershipUser GetUser(string username, bool userIsOnline) { CustomMembershipUser selectedUser = null; using (ExtranetDB dbContext = new ExtranetDB()) { var user = (from us in dbContext.Users where string.Compare(username, us.Username, StringComparison.OrdinalIgnoreCase) == 0 select us).FirstOrDefault(); if (user != null) { selectedUser = new CustomMembershipUser(user); } } if (selectedUser == null) { using (var context = new PrincipalContext(ContextType.Domain, "DELLORTO.IT")) { var usr = UserPrincipal.FindByIdentity(context, username); if (usr != null) { selectedUser = new CustomMembershipUser(usr); } } } if (selectedUser == null) { using (var context = new PrincipalContext(ContextType.Domain, "INDIA")) { var usr = UserPrincipal.FindByIdentity(context, username); if (usr != null) { selectedUser = new CustomMembershipUser(usr); } } } return(selectedUser); }
/// <summary> /// /// </summary> /// <param name="username"></param> /// <returns></returns> public override string[] GetRolesForUser(string username) { if (!HttpContext.Current.User.Identity.IsAuthenticated) { return(null); } var userRoles = new string[] { }; using (ExtranetDB dbContext = new ExtranetDB()) { var selectedUser = (from us in dbContext.Users.Include("Roles") where string.Compare(us.Username, username, StringComparison.OrdinalIgnoreCase) == 0 select us).FirstOrDefault(); if (selectedUser != null) { userRoles = new[] { selectedUser.Roles.Select(r => r.RoleName).ToString() }; } return(userRoles.ToArray()); } }
public object DirSearch(string sDir, List <FtpModel> nodes) { string ftpRoot = "C:\\inetpub\\wwwroot\\FTP"; string cartellaAttuale = ""; if (ftpRoot != sDir) { cartellaAttuale = sDir.Substring(ftpRoot.Length + 1); } try { foreach (string d in Directory.GetDirectories(sDir)) { Boolean bCheck = true; //string oldFolder = d; DirectoryInfo nomeFolder = new DirectoryInfo(d); if (sDir == ftpRoot) { bCheck = false; //var user = (CustomMembershipUser)Membership.GetUser(LoginView.UserName, false); var user = User.Identity.Name; using (ExtranetDB dbContext = new ExtranetDB()) { //var utente = dbContext.Users.Include("UserShares"); //FTPabilitazioni[] abilitazioni = dbContext.FTPabilitazioni.Include("UserShares").Where(e => e.ftpUser == User.Identity.Name && e.UserShares).FirstOrDefault(); UserShares abilitazioni = dbContext.UserShares.Where(e => e.username == User.Identity.Name && e.SharePath == nomeFolder.Name).FirstOrDefault(); if (abilitazioni != null) { bCheck = true; } } if (bCheck == true) { nodes.Add(new FtpModel() { FileName = nomeFolder.Name, Folder = "#" /*nomeFolder.Parent.Name*/, Type = "Folder", LastEdit = nomeFolder.LastWriteTimeUtc.ToLocalTime().ToString(), Size = GetDirectorySize(nomeFolder.FullName).ToString() + "Kb" }); } } else { nodes.Add(new FtpModel() { FileName = nomeFolder.Name, Folder = cartellaAttuale, Type = "Folder", LastEdit = nomeFolder.LastWriteTimeUtc.ToLocalTime().ToString(), Size = GetDirectorySize(nomeFolder.FullName).ToString() + "Kb" }); } } if (cartellaAttuale != "") { DirectoryInfo nomeFolder2 = new DirectoryInfo(sDir); //var cartella = sDir.Substring(ftpRoot.Length+1); foreach (var f in nomeFolder2.GetFiles()) { nodes.Add(new FtpModel() { FileName = f.Name, Folder = cartellaAttuale, Type = f.Extension, LastEdit = f.LastWriteTimeUtc.ToLocalTime().ToString(), Size = f.Length.ToString() + "Kb" }); } } return(Ok("")); } catch (System.Exception excpt) { Console.WriteLine(excpt.InnerException); return(InternalServerError(excpt.InnerException)); } }
[Route("api/file/upload/")] //{username}")] public HttpResponseMessage Upload() //non più usata, ora è in FileController { HttpResponseMessage result = null; try { var httpRequest = HttpContext.Current.Request; var filecontent = httpRequest.Files[0]; var sFolder = httpRequest["PathToSave"].ToString().TrimEnd(); string[] sDir = sFolder.Split('\\'); Boolean bCheck = false; var user = User.Identity.Name; string sRight = "R"; using (ExtranetDB dbContext = new ExtranetDB()) { var sPathToCheck = sDir[0]; //var utente = dbContext.Users.Include("UserShares"); //FTPabilitazioni[] abilitazioni = dbContext.FTPabilitazioni.Include("UserShares").Where(e => e.ftpUser == User.Identity.Name && e.UserShares).FirstOrDefault(); UserShares abilitazioni = dbContext.UserShares.Where(e => e.username == User.Identity.Name && e.SharePath == sPathToCheck).FirstOrDefault(); if (abilitazioni != null) { sRight = abilitazioni.abilitazione; bCheck = true; } } if (bCheck == false || sRight == "R") { result = Request.CreateResponse(HttpStatusCode.Forbidden, "Forbidden"); return(result); } // var a=httpRequest.Files["uFile"]; if (httpRequest.Files.Count > 0) { if (sFolder != "#" && sFolder != "FTP" && sFolder != "") { var docfiles = new List <string>(); foreach (string file in httpRequest.Files) { var postedFile = httpRequest.Files[file]; //FTPROOT var filePath = HostingEnvironment.MapPath("~/FTP") + '\\' + sFolder + '\\' + postedFile.FileName; postedFile.SaveAs(filePath); docfiles.Add(filePath); } result = Request.CreateResponse(HttpStatusCode.Created, docfiles); } else { result = Request.CreateResponse(HttpStatusCode.BadRequest, "Cannot upload in this folder"); return(result); } } else { result = Request.CreateResponse(HttpStatusCode.BadRequest, "File non allegato"); } return(result); } catch (Exception e) { result = Request.CreateResponse(HttpStatusCode.BadRequest, e.Message); } return(result); }
public HttpResponseMessage DownloadM(DownloadUrl t) { if (t == null) { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } HttpResponseMessage result = null; try { var httpRequest = HttpContext.Current.Request; Boolean bCheck = false; var user = User.Identity.Name; string sRight = "R"; using (ZipFile zip = new ZipFile()) { zip.AlternateEncodingUsage = ZipOption.AsNecessary; zip.AddDirectoryByName("Files"); foreach (var percorso in t.Urls) { bCheck = false; //var user = User.Identity.Name; using (ExtranetDB dbContext = new ExtranetDB()) { var sPath = percorso.Split('/'); var sPathToCheck = sPath[0]; //var utente = dbContext.Users.Include("UserShares"); //FTPabilitazioni[] abilitazioni = dbContext.FTPabilitazioni.Include("UserShares").Where(e => e.ftpUser == User.Identity.Name && e.UserShares).FirstOrDefault(); UserShares abilitazioni = dbContext.UserShares.Where(e => e.username == User.Identity.Name && e.SharePath == sPathToCheck).FirstOrDefault(); if (abilitazioni != null) { bCheck = true; } } if (bCheck == false) { var resultB = new HttpResponseMessage(HttpStatusCode.BadRequest); return(resultB); } var sPercorso = ftpRoot + "\\" + percorso; sPercorso = sPercorso.Replace("/", "\\"); zip.AddFile(sPercorso.ToString(), "Files"); } return(ZipContentResult(zip)); } } catch (Exception e) { result = Request.CreateResponse(HttpStatusCode.BadRequest, e.Message); } return(result); }
[Route("api/file/download/{sTipo}/{*sFile?}")]//{username}")] public HttpResponseMessage Download(string sTipo, string sFile) { try { sFile = sFile.Substring(0, sFile.Length - 1); string filePath = ftpRoot + "\\" + sFile + "." + sTipo; //filePath = filePath.Substring(5); filePath = filePath.Replace('/', '\\'); string[] sFolder = sFile.Split('/'); Boolean bCheck = false; var user = User.Identity.Name; using (ExtranetDB dbContext = new ExtranetDB()) { var sPathToCheck = sFolder[0]; //var utente = dbContext.Users.Include("UserShares"); //FTPabilitazioni[] abilitazioni = dbContext.FTPabilitazioni.Include("UserShares").Where(e => e.ftpUser == User.Identity.Name && e.UserShares).FirstOrDefault(); UserShares abilitazioni = dbContext.UserShares.Where(e => e.username == User.Identity.Name && e.SharePath == sPathToCheck).FirstOrDefault(); if (abilitazioni != null) { bCheck = true; } } if (bCheck == false) { //var resultB = new HttpResponseMessage(HttpStatusCode.BadRequest); //resultB.ReasonPhrase = "Not permitted"; var resultB = Request.CreateResponse(HttpStatusCode.BadRequest, "Not allowed"); return(resultB); } var dataBytes = File.ReadAllBytes(filePath); var sName = filePath.Split('\\').Last(); HttpContext.Current.Response.BufferOutput = false; //adding bytes to memory stream var dataStream = new MemoryStream(dataBytes); HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK) { //Content = new ByteArrayContent(dataStream.ToArray()) Content = new ByteArrayContent(dataStream.ToArray()) }; //.BufferOutput = false; result.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment") { FileName = sName }; result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); return(result); // System.Diagnostics.Debugger.Break(); //byte[] fileBytes = System.IO.File.ReadAllBytes(@"c:\folder\myfile.ext"); //byte[] fileBytes = System.IO.File.ReadAllBytes(@"C:\\inetpub\\wwwroot\\Condivisione\\" + filePath); //string fileName = filePath.Substring(filePath.LastIndexOf('\\') + 1); //return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); } catch (System.Exception e) { Console.WriteLine(e.Message); //var result = new HttpResponseMessage(HttpStatusCode.BadRequest); //result.ReasonPhrase = e.Message; var result = Request.CreateResponse(HttpStatusCode.BadRequest, e.Message); return(result); } }
public object dirSearch(string sDir, int?idParent, List <JsTreeModel> nodes) { if (sDir.ToString() == null) { // sDir = "C:\\Users\\paolo.oliva\\source\\repos\\test root"; } if (id.ToString() == "") { id = 1; } if (idParent.ToString() == "") { idParent = 0; } if (nodes.Count() == 0) { nodes = new List <JsTreeModel>(); } try { foreach (string d in Directory.GetDirectories(sDir)) { Boolean bCheck = true; string oldFolder = d; DirectoryInfo nomeFolder = new DirectoryInfo(d); if (idParent == 1) { bCheck = false; //var user = (CustomMembershipUser)Membership.GetUser(LoginView.UserName, false); var user = User.Identity.Name; using (ExtranetDB dbContext = new ExtranetDB()) { var selected = (from us in dbContext.Users.Include("Roles") where string.Compare(us.Username, user, StringComparison.OrdinalIgnoreCase) == 0 select us).FirstOrDefault(); var yoghi = (from us in dbContext.Shares.Include("Roles") select us).FirstOrDefault(); var bubu = (from us in dbContext.Roles.Include("Shares") select us).FirstOrDefault(); var user2 = dbContext.Users.Include(us => us.Roles).Where(sh => sh.Username == user) .FirstOrDefault(); //.FirstOrDefault(); foreach (var ruolo in user2.Roles) { var condivisione = dbContext.Roles .Include(sh => sh.Shares) .Where(sh => sh.RoleId == ruolo.RoleId) .FirstOrDefault(); //Console.WriteLine(condivisione.ToString()); foreach (var r in condivisione.Shares.Select(s => s.SharePath)) { if (r == nomeFolder.Name) { bCheck = true; break; } } //if(condivisione.Shares.Select( s => s.SharePath ).ToString() ==nomeFolder.Name) //{ // bCheck = true; //} //var condivisione2 = condivisione.Shares.Select(s => s.SharePath).Take(1); if (bCheck == true) { break; } } // var test = User.IsInRole("India"); // CustomRole.isShareForRoles(Membership.GetUser().ToString() , nomeFolder.ToString()).ToString(); } } int?oldId = idParent; if (bCheck == true) { id++; //if (idParent > 0) { idParent--; } nodes.Add(new JsTreeModel() { id = id.ToString(), parent = idParent.ToString(), text = nomeFolder.Name }); //int? oldId = idParent; idParent = id; //idParent++; foreach (var f in nomeFolder.GetFiles()) { string sIcon = "jstree-file"; id++; nodes.Add(new JsTreeModel() { id = id.ToString(), parent = idParent.ToString(), text = f.Name, icon = sIcon }); } } //} dirSearch(d, idParent, nodes); idParent = oldId; //idParent-- ; //id=oldId; } } catch (System.Exception excpt) { Console.WriteLine(excpt.Message); } //return Json(nodes, JsonRequestBehavior.AllowGet); return(nodes); }
public ActionResult Download(string file) { var sFile = ""; sFile = ftpRoot + "/" + System.Uri.UnescapeDataString(file); //string file = @"C:\inetpub\wwwroot\FTP\IDIADA\20190706 EPOLE ERIC GRANADO.mp4"; //file = ftpRoot+"/" + System.Uri.UnescapeDataString(file); //var filePath = @"C:\inetpub\wwwroot\FTP\IDIADA\20190706 EPOLE ERIC GRANADO.mp4"; //var filePath = ftpRoot + file; if (sFile == "") { Response.StatusCode = 400; Response.StatusDescription = "File request error"; Response.End(); return(FTP()); } sFile = file; //sFile = sFile.Substring(0, sFile.Length - 1); string filePath = sFile; //filePath = filePath.Substring(5); filePath = filePath.Replace('/', '\\'); sFile = sFile.Replace('/', '\\'); string[] sFolder = sFile.Split('\\'); Boolean bCheck = false; var user = User.Identity.Name; using (ExtranetDB dbContext = new ExtranetDB()) { var sPathToCheck = sFolder[0]; //var utente = dbContext.Users.Include("UserShares"); //FTPabilitazioni[] abilitazioni = dbContext.FTPabilitazioni.Include("UserShares").Where(e => e.ftpUser == User.Identity.Name && e.UserShares).FirstOrDefault(); UserShares abilitazioni = dbContext.UserShares.Where(e => e.username == User.Identity.Name && e.SharePath == sPathToCheck).FirstOrDefault(); if (abilitazioni != null) { bCheck = true; } } if (bCheck == false) { //var resultB = new HttpResponseMessage(HttpStatusCode.BadRequest); //resultB.ReasonPhrase = "Not permitted"; Response.StatusCode = 400; Response.StatusDescription = "File request error"; Response.End(); return(FTP()); //return resultB; } filePath = ftpRoot + "\\" + filePath; FileInfo OutFile = new FileInfo(filePath); Response.Clear(); Response.ContentType = "application/octet-stream"; Response.Buffer = false; Response.BufferOutput = false; //Response.AppendHeader("Content-Lenght", OutFile.Length.ToString()); filePath = OutFile.FullName; string fileName = OutFile.Name; //filePath = @"C:\inetpub\wwwroot\FTP\IDIADA\20190706 EPOLE ERIC GRANADO.mp4"; Response.AppendHeader("Content-Disposition", "filename=" + System.Uri.EscapeDataString(fileName)); Response.TransmitFile(filePath, 0, OutFile.Length); Response.End(); //return null; //return FTP(); return(FTP()); }
[Route("/Files/MultiUpload/")]//{username}")] public string MultiUpload() { //HttpResponseMessage result = null; try { var httpRequest = HttpContext.Request; //var filecontent = httpRequest.Files[0]; //var httpRequest = Request; //var filecontent = Request.Files[0]; string filename = System.Uri.UnescapeDataString(Request.Headers["x-filename"].ToString().TrimEnd()); var sFolder = System.Uri.UnescapeDataString(Request.Headers["PathToSave"].ToString().TrimEnd()); string[] sDir = sFolder.Split('\\'); Boolean bCheck = false; var user = User.Identity.Name; string sRight = "R"; using (ExtranetDB dbContext = new ExtranetDB()) { var sPathToCheck = sDir[0]; UserShares abilitazioni = dbContext.UserShares.Where(e => e.username == User.Identity.Name && e.SharePath == sPathToCheck).FirstOrDefault(); if (abilitazioni != null) { sRight = abilitazioni.abilitazione; bCheck = true; } } if (bCheck == false || sRight == "R") { //result = Request.CreateResponse(HttpStatusCode.Forbidden, "Forbidden"); return("Forbidden"); } var chunks = Request.InputStream; string path = HostingEnvironment.MapPath("~/FTP/upload"); //test //var filePath = HostingEnvironment.MapPath("~/FTP") string nome = filename + ".tmp" + Request.Headers["completed"].ToString().TrimEnd().PadLeft(4, '0'); //path = ftpRoot + '\\' + sFolder; //20190830: utilizzo cartella temp x upload path = ftpRoot + "\\UPLOAD"; if (sFolder != "#" && sFolder != "FTP" && sFolder != "") { string newpath = Path.Combine(path, nome); using (System.IO.FileStream fs = System.IO.File.Create(newpath)) { byte[] bytes = new byte[1024000];//[77570]; int bytesRead; //var httpRequest = HttpContext.Request; //var filecontent = httpRequest.Files[0]; while ((bytesRead = Request.InputStream.Read(bytes, 0, bytes.Length)) > 0) { fs.Write(bytes, 0, bytesRead); } } return("test"); } else { return("Cannot upload in this folder"); } } catch (Exception ex) { return("Error: " + ex.Message); } }