---
title: "Hur skydda en hel mapp med asp.net?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/104842-hur-skydda-en-hel-mapp-med-asp-net"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "weedogt"
published: "2004-06-02T18:47:21.000Z"
updated: "2004-06-06T22:34:12.000Z"
replies: 8
views: 522
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/104842-hur-skydda-en-hel-mapp-med-asp-net"
---

# Hur skydda en hel mapp med asp.net?

## #1 — weedogt, 2004-06-02T18:47Z

Hej,

Jag håller på att bygga en sajt där en area ska vara skyddad med lösenord, ungefär www.minsida.se/skyddad/hemligsida.aspx

Med asp.net är det enkelt att skapa en login sida som skyddar hemligsida.aspx. Så långt allt väl.

Men på hemilgsida.aspx vill jag också ha lite bilder som också ska skyddas. Bilderna ligger i samma mapp, ungefär www.minsida.se/skyddad/bild.jpg

Problemet är att den enkla asp.net login metoden inte verkar funka för andra filtyper än .aspx.  Hur skyddar jag ALLA filer i en mapp så att en icke inloggad användare hamnar på inloggningssidan istället för att se bilden?

Om det är av intresse: Jag har köpt min sajt av [www.web10.se](http://www.web10.se) 

/anders

Permalänk: https://www.webforum.nu/p/104842

## #2 — PDahlen, 2004-06-02T20:03Z

Finns en artikel om det på <http://aspnet.4guysfromrolla.com/articles/020404-1.aspx>
Artikeln pratar om Access databasfiler men du kan använda samma teknik för .jpg, .gif eller vad du nu behöver.

Permalänk: https://www.webforum.nu/p/1360373

## #3 — weedogt, 2004-06-02T20:22Z

Tack för tipset men...

I artikeln står det "...you will need access to Web server..." vilket är mitt problem; jag har inte access till servern. Jag måste (tror jag...) lösa det via asp.net kod och det har jag inte lyckats få svar på hur man gör.

/anders

Permalänk: https://www.webforum.nu/p/1360383

## #4 — PDahlen, 2004-06-02T20:28Z

Går inte.
Då får du lägga filerna i en mapp ovanför wwwroot så att de inte är tillgängliga via webben. Sedan får dina .aspx sidor öppna filerna genom att använda System.IO.

Permalänk: https://www.webforum.nu/p/1360387

## #5 — asmodie, 2004-06-02T20:35Z

En problem ställning. Om jag nu har ett webhotell. Hur fixar man det då?

Permalänk: https://www.webforum.nu/p/1360396

## #6 — weedogt, 2004-06-02T21:50Z

> **PDahlen skrev:**
>
> Går inte.
> Då får du lägga filerna i en mapp ovanför wwwroot så att de inte är tillgängliga via webben. Sedan får dina .aspx sidor öppna filerna genom att använda System.IO.

Ok, det kan funka. Det gick bra att skapa en mapp ovanför wwwroot.

Jag har nu sökt på webben men inte funnit någon mer exakt information om hur jag kan använda system.io för att visa en bild som ligger ovanför wwwroot.

Kanske någon kan peka mej i rätt riktning?

/anders

Permalänk: https://www.webforum.nu/p/1360482

## #7 — PDahlen, 2004-06-03T06:03Z

Rättar mig själv lite. För bilder använder du System.Drawing.Imaging.
Men i övrigt så kan du läsa på om t.ex. System.IO på MSDN.

Här är ett exempel som jag använder för att visa bilder:

Skapa ett nytt .aspx dokument, t.ex. ShowImage.aspx
I code-behind Page_Load lägger du

```
  'Read in the image filename to create a thumbnail of
  Dim imageID As String = Request.QueryString("fileid")
  Dim imageUrl As String
  ' imageUrl brukar jag hämta i databas
  ' men här tar jag en url som jag skickat in
  imageUrl = Request("bild")

  'Get the image.
  Try
    'Make sure that the image URL doesn't contain any /'s or \'s
    If imageUrl.IndexOf("/") >= 0 Or imageUrl.IndexOf("\") >= 0 Then
      'We found a / or \
      Response.End()
    End If

    'Add on the appropriate directory
    ' här måste man ange hela sökvägen till bilden
    ' mappen ligger utanför wwwroot som finns i
    ' c:/inetpub/wwwroot/
    imageUrl = "c:/inetpub/minabilder/" & imageUrl

    Dim fullSizeImg As System.Drawing.Image
    fullSizeImg = System.Drawing.Image.FromFile(Server.MapPath(imageUrl))
    Dim imgType = fullSizeImg.RawFormat

    If imgType.Equals(System.Drawing.Imaging.ImageFormat.Gif) Then
      Response.ContentType = "image/gif"
    Else
      Response.ContentType = "image/jpeg"
    End If

    fullSizeImg.Save(Response.OutputStream, imgType)
  Catch
    ' här hamnar vi om bilden vi försökte öppna inte finns
    ' då tar jag en bild som jag vet finns, t.ex. en bild
    ' som det står "Bild saknas" på 
    imageUrl = "~/images/no_image.gif"
    Dim fullSizeImg As System.Drawing.Image
    fullSizeImg = System.Drawing.Image.FromFile(Server.MapPath(imageUrl))
    Dim imgType = fullSizeImg.RawFormat
    If imgType.Equals(System.Drawing.Imaging.ImageFormat.Gif) Then
      Response.ContentType = "image/gif"
    Else
      Response.ContentType = "image/jpeg"
    End If

    fullSizeImg.Save(Response.OutputStream, imgType)
  End Try
```

När du sedan ska visa en bild så skapar du en asp:Image och lägger ImageUrl="showimage.aspx?bild=minbild.jpg"

Permalänk: https://www.webforum.nu/p/1360522

## #8 — fredrik, 2004-06-03T07:59Z

> En problem ställning. Om jag nu har ett webhotell. Hur fixar man det då?

Det går alldeles utmärkt. Du får helt enkelt koppla asp.net motorn till de filtyper du vill skydda. Detta görs i web.config:

```
	
<location path="HEMLIG_MAPP">
    <system.web>      
		<httpHandlers>
			<add verb="*" path="*.jpg" type="My_NS.My_Class,My_NS" />			
		</httpHandlers>
    </system.web>
  </location>
```

Din klass (My_Class) får du sedan ärva ner från "IHttpModule" och sedan i metoden kolla att användaren verkligen är Inloggad.

Exempel på detta finns bla. på:
<http://msdn.microsoft.com/asp.net/using/building/web/default.aspx?pull=/library/en-us/dnaspp/html/urlrewriting.asp#urlrewriting_topic7>

**PDahlen**: I ditt kodexempel där du kollar efter "Sökvägs-tecken", tänk på att HEX-tecken även fungerar och att du bör skydda dig mot dessa med.

Permalänk: https://www.webforum.nu/p/1360545

## #9 — weedogt, 2004-06-06T22:34Z

> **PDahlen skrev:**
>
> Här är ett exempel som jag använder för att visa bilder:

Tack PDahlen! Efter ett par timmars strulande med ditt exempel som bas fick jag det att funka som jag ville. Kalas!

Permalänk: https://www.webforum.nu/p/1362174

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/104842-hur-skydda-en-hel-mapp-med-asp-net
