Buongiorno a tutti,
ho bloccato l'accesso diretto ai file aggiungendo un event handler

codice:
using System.IO;
using System.Web;
using System.Globalization;
    
namespace MVPHacks
{
public class NoLeechImageHandler : IHttpHandler 
{
 public void ProcessRequest(System.Web.HttpContext ctx) 
 {
     HttpRequest req = ctx.Request;
     string path = req.PhysicalPath;
     string extension = null;
     
     if (req.UrlReferrer != null && req.UrlReferrer.Host.Length > 0)
     {
      if (
	  CultureInfo.InvariantCulture.CompareInfo.Compare(req.Url.Host, 
          req.UrlReferrer.Host, CompareOptions.IgnoreCase) != 0)
      {
          path = ctx.Server.MapPath("~/images/backoff.gif");
      }
     }            string contentType = null;
    
         ctx.Response.StatusDescription = "Image not found";
         ctx.Response.StatusCode = 404;
     
 }
 
     public bool IsReusable { get {return true; } }        
 }
}




<configuration>
    <system.web>
        <httpHandlers>
            <add verb="*" path="Document/*.*" type="MVPHacks.NoLeechImageHandler, MVPHacks "/>
        </httpHandlers>
    </system.web>
</configuration>
come vedete blocco l'accesso diretto a tutti i file presenti nella cartella ma vorrei comunque consentire
la visualizzazione degli stessi passando attraverso una pagina ( che verifica il login e i ruoli)

grazie