Går det att via IIS sätta säkerhet för andra dokument än de som webbservern exekverar? Har det inte något att göra med de typer av dokument som man anger att IIS ska exekvera? Det finns lite olika lösningar på detta. I ASP.NET finns det 3 användar kontexter Jag fixade det genom att lägga mitt dokument utanför webbservern och sedan strömma upp det m.h.a.Säkerhet för dokument IIS
Om man skriver in sökvägen till ett dokument t.ex. doc eller pdf som ligger på den "säkra" sidan av en site så går de ändå att komma åt. Så gäller t.ex. de dokument som ligger på filarean här på Pellesoft. De går att komma åt via URL trots att man inte är inloggad.
Det går ju att via web.config ställa in att vissa sidor och mappar kräver inloggning men detta funkar bara för de sidor som exekveras av servern, t.ex. aspx.
Hur ställer man in att webbservern ska reagera på alla typer av dokument som efterfrågas under en viss mapp (och inte bara de som måste köras av servern) ?
Vad är man för användare på servern när man skriver in en sökväg till ett dokument (annat än aspx motsv.) ? Inte ASPNET-usern iaf.
MVH Johan SundinSv: Säkerhet för dokument IIS
Under engenskaperna för webbplatsen och därefter fliken för Arbetskatalog hittar du en knapp som heter Konfiguration.
I denna ruta finns en flik som heter Mappningar och listan innehåller alla möjliga filändelser, t ex asp, vb och soap.
Kanske om du lägger till .doc i denna lista med verben Get, Head och Post så funkar det som du vill.
Observera att jag inte VET detta utan att det är en teori. Hur man sen gör den i sin .config-fil har jag ingen aning om men det kanske pekar i rätt riktning.
//Mikael SandSv: Säkerhet för dokument IIS
Du kan faktiskt via webconfig bestäma om en gif bild skall falla under ASP.NET's säkerhet, men det är så prestandakrävande så det är inte intressant.
Det vanligast sättet är att man lägger alla filer som skall skyddas från nerladdning utanför webserverns åtkomst. När man sedan vill komma åt dessa filer så låter man ASP.NET hämta dessa via filåtkomst och sedan skicka filen till httpströmmen.
På detta vis kan man endast nå filerna via en speciell ASPX sida som du enkelt kan skydda via den inbyggda säkerheten i ASP.NET.
I ASP.NET så verkar det som man har 2 olika användare. Dels den vanliga IUSR_<<datornamn>> som accessar alla filer. Sedan verkar de som att det är ASPNET_WP som är den användare som används när man försöker nå en databas/fil osv osv innefrån en asp.net sida.
Detta är för mig total obegripligt eftersom det innebär att man enkelt kan accessa information som man inte bör göra. Säg att du har en speciell download mapp som ligger utanför webservern. Då måste man via ASP.NET accessa dessa filer och det gör man med användaren ASPNET_WP. Om jag då på samma webhotell gör en egen ASP.NET sida som accessar din download mapp, så gör jag det som ASPNET_WP och borde då få tillgång till filerna.
Nu har jag aldrig prövat det, så jag är inte säker, och jag hoppas VERKLIGEN att man kan ändra detta på något sätt, eller att jag har totalt FEL.
- MagnusSv: Säkerhet för dokument IIS
Process
Unmanaged thread
Managed thread
Processen får alltid kontot som står i Machine.Config, vilket vanligtvis är ASPNET_WP.
Det får din Unmanaged thread också, vanligtvis, om du inte stänger av anonymous access eller byter det kontot mot ngt annat. DVS en asp.net applikation bör aldrig få IUSR kontot.
Sen har du en managed thread med egen identitet, den blir samma som unmanaged thread om du i web.config slår på impersonation.
För alla unmanaged resurser, dvs filer, databaser, register och sånt, så är det identiteten på dein Unmanaged thread du måste tänka på. Det är den som måste ha rättigheter överallt. I de flesta scenarion brukar det vara aspnet_wp kontot.
titta här: http://www.devx.com/SummitDays/Article/6666/0 för lite utförligare information.Sv: Säkerhet för dokument IIS
Response.ContentType = "application/vnd.ms-word"
Response.AddHeader("content-disposition", "inline; filename=filnamn.doc")
Response.WriteFile(path)
Response.End()
för en wordfil. Verkar funka perfekt.
Tack för alla förslag och all hjälp.
/Johan