Hej! Everyone är alla på filservern inte alla i hela nätverket. Tack för svaret Ola. Nej, du ska bara lägga upp denna fiktiva användare som applikationen använder sig av. Tack igen!Söka efter filer på nätverksdisk från "intranät"-sida
Utvecklar en intern webbapplikation och har en asp.net-sida som söker igenom en mapp på disk (annan server i nätverket). Detta fungerar fint när jag kör i utvecklingsmiljön på min burk, men ej i drift på vår webbserver.
Har stött på ett par problem när jag kör i sidan drift via IE från min burk mot driftservern:
Felen kommer när jag kör:
BaseDirectory.GetFiles(fileMask)
1) Först får jag felet:
Could not find a part of the path 'minServer\minMapp1\minMapp2'.
Sen om jag nu går in på driftservern & kör browse i IISén på sidan så går detta, men jag får istället fel 2 nedan. Sen kör jag igen från min burk och får då inte fel 1 längre, men fel 2 nedan.
2) På samma kodrad får jag nu UnauthorizedAccessException på mappen trots att den har read & write för Everyone.
Användaren körs webben enligt:
<authentication mode="Windows">
</authentication>
<identity impersonate="true"/>
Min kod:
Private Sub SearchForPDF()
Dim files As New ArrayList
DoSearch(New System.IO.DirectoryInfo("\\minServer\minMapp1\minMapp2"), files)
End sub
Private Sub DoSearch(ByVal BaseDirectory As System.IO.DirectoryInfo, ByVal files As ArrayList)
Dim fileMask As String = "*söksträng*"
Try
files.AddRange(BaseDirectory.GetFiles(fileMask))
Catch u As UnauthorizedAccessException
End Try
End Sub
Någon som har en lösning på detta?
Med Vänliga Hälsningar
/ StefanSv: Söka efter filer på nätverksdisk från "intranät"-sida
Dvs: WEBSERVER\ASPNET är inte medlem i FILSERVER\EVERYONE
Enklast är väl att lösa det så här:
<identity impersonate="true" userName="DOMÄNEN\APP_USER1" password="xxxxxx"/>
Alltså sätt upp domän / AD-användaren
DOMÄNEN\APP_USER1
eller.. (sämre) WEBSERVER\APP_USER1 samt FILSERVER\APP_USER1
Och tilldela relevanta behörigheter på webbservern och filservern:
På webbservern:
WINDOWS\Microsoft.NET\<version>\Temporary ASP.NET Fileswwwroot\DinApplikationSv:Söka efter filer på nätverksdisk från "intranät"-sida
Trodde att i och med att jag kör windows authentication så skulle de få samma behörighet som om de kör windows explorer mot disken.
Menar du att jag måste lägg upp:
<identity impersonate="true" userName="DOMÄNEN\APP_USER1" password="xxxxxx"/>
för varje användare som ska köra detta? Det är inte praktiskt administrationsmässigt då jag har hundratals användare som kör denna applikation & jag vill inte lägga lösenordet i config. Finns det inget annat sätt? eller kan jag sätta behörigheten på en grupp eller liknande?Sv: Söka efter filer på nätverksdisk från "intranät"-sida
Om du lägger den i en grupp så gäller ju gruppbehörigheter som vanligt, så ja du kan göra så. Sv:Söka efter filer på nätverksdisk från "intranät"-sida
Gjorde ett test nu o la in mitt eget login och lösen i web.config och då fungerade det fint, men så vill jag förstås inte köra.
Angående APP_USER1, kan detta vara vilken fikitv användare som helst eller bör det vara just denna? Är det inte en säkerhetsrisk att ha användarnamn och lösenord för en ad-användare så öppet i en web.confg eller förstår jag dig fel?