22. april 2003 - 16:48Der er
17 kommentarer og 1 løsning
System.UnauthorizedAccessException: Adgang nægtet
Hej Alle i eksperter. Jeg får denne fejl når jeg prøver at bruge nogle metoder fra en DLL som jeg har importeret. Jeg har i min "machine.config" Sat user til "system". Og er logget ind som administrator. Er der nogle der har gode forslag til hvordan man klarer den.. Jeg har på fornemmelsen at der er noget administrativt, men hvad?
----------------------------------------------------------- Adgang nægtet. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
The ASP.NET process is not authorized to access the requested resource. For security reasons the default ASP.NET process identity is '{machinename}\ASPNET', which has limited privileges. Consider granting access rights to the resource to the ASP.NET process identity.
To grant ASP.NET write access to a file, right-click the file in Explorer, choose "Properties" and select the Security tab. Click "Add" to add the "{machinename}\ASPNET" user. Highlight the ASP.NET account, and check the Write box in the Allow column.
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Det er vist ikke nødvendigt. ASP.NET fortolkeren siger jo hvad du skal gøre: To grant ASP.NET write access to a file, right-click the file in Explorer, choose "Properties" and select the Security tab. Click "Add" to add the "{machinename}\ASPNET" user. Highlight the ASP.NET account, and check the Write box in the Allow column.
Det skyldes at du sikkert forsøger at skrive eller læse filer som ASP.NET ikke har lov til at få adgang til. Dette er blot en sikkerhedsfunktion i ASP.NET som du skal være glad for.
Så skal du netop følge vejledningen i fejlmeddelelsen. Du kan vælge en mappe og give den læse/skrive rettighed - og mappen kan være c:\inetpub\wwwroot (standard opsætning i IIS)
odegaard & clausjul>> det kan også være at han ikke forstår engelsk, og gerne vil have det oversat?!
ASP.Net processen har ikke adgang til resourcen. Af sikkerhedsgrunde er standards Asp.Net brugeren {maskinnavn}\ASPNET, som har begrænsede rettigheder. Overvej at give de fornødne rettigheder på resourcen til Asp.Net brugeren.
For at give Asp.net skriveadgang til en fil, højreklik på filen i Explorer, vælg Egenskaber og så Sikkerheds-fanebladet. Klik på tilføj for at tilføje {maskinnavn}\ASPNET-brugeren. Marker Asp.net kontoen, og kryds Skriv-boksen af i Rettigheder-kulonnen.
Tillad mig at komme med en kynisk bemærkning: At tro at man kan lære at programmere (eller noget som helst andet ud over almindelig, simpel brug af computere) uden at kunne engelsk er rimelig optimistisk, for ikke at sige tæt på umuligt...
Men jeg har prøvet at give ASPNET brugeren flere rettighedder, til at bruge læse og skrive til de DLL filer, som jeg prøver at benytte. men det hjælper ikke.
Kan det have noget at sige at jeg sidder logget på et domain? Det er vel stadig den lokale ASPNET bruger der skal have rettighederne?
Og jeg kan god engelsk.
Så skal jeg stadig bare gå ind og give filen retigheder til at ASPNET brugeren..
Hvis nu min DLL prøver at tilgå en database over et netværk hvilken fil skal jeg så give retigheder? Er det ikke muligt at bruge den bruger som er logget ind. at bruge hans retigheder i stedet for ASPNET? Det ville jo gøre det lettere for det virker fint som en Aplikation. :)
korup>> når du kører siden som asp.net, så er det ET og kun ET program, som afvikler alle siderne for dig. Programmet hedder aspnetworker, og bliver kørt af brugeren ASPNET af sikkerhedsmæssige grunde. Hver hjemmeside starter altså ikke sit eget program, på samme måde som du kører 10 forskellige exe-filer. aspnetworker kører heller ikke under den bruger som er logget ind.. for hvad nu hvis der ikke er noget bruger der er logget ind? ELler hvis det nu er admin... så kan der ske grimme ting. Det betyder, at hvis du har en dll som tilgår en database, som bliver brugt på en hjemmeside, så er det ASPNET-brugeren som skal have adgang, til at LÆSE din aspx-side, og dine dll'er. For at tilgå en database er det dog ikke nok at kunne LÆSE den, brugeren skal også have adgang til at ÆNDRE i den.
Håber at denne lidt rodede forklaring kunne kaste lys over lidt af hvert.
ASP afvikles ikke med samme gode sikkerhed, så det kan du ikke regne med. Mht. om det er din DLL der er problemet, så er det nu også det jeg mener. Dvs. det som DLL'en forsøger, der er skyld i problemet. Jeg tror efterhånden det er ved at være på tide at du kommer med noget kode hvis vi skal hjælpe dig. Jeg kan med 99.99999% sikkerhed sige at du har fået løsningen præsenteret. Hvilke resourcer det så er som du skal give ASPNET-brugeren adgang til må du kunne finde andetsteds.
korup & odegaard>> ASP afvikles af IUSR-account'en... den bruger har som regel fuld adgang til wwwroot-mappen, så der plejer aldrig at være de store problemer. Måske med lidt databaser i ny og næ. Med ASP.Net er der kommer eny bruger man skal tage højde for, og det glemmer folk alt for ofte. Den skal som tommelfingerregel have de samme rettigheder som IUSR'eren, så skulle der ikke være nogen slinger i valsen :)
Men odegaard har nok ret. Det virker til at din dll indeholder nogle metode, som tilgår nogle resourcer der ikke er de fornødne rettigheder til.
korup>> hvorfor kunne du dog ikke bare vise os noget kode?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.