Pravkar sem se preselil z IIS6 na Win2003 na IIS8 na Win2012 za gostovanje aplikacij ASP.NET.
V eni določeni mapi v aplikaciji moram ustvariti in izbrisati datoteke. Po kopiranju datotek v nov strežnik se mi pri poskusu brisanja datotek pojavljajo naslednje napake:
Dostop do poti 'D:\WebSites\myapp.co.uk\companydata\filename.pdf' je zavrnjen.
Ko preverim IIS, vidim, da se aplikacija izvaja pod računom DefaultAppPool, vendar nisem nikoli nastavil dovoljenj Windows za to mapo, da bi vključevala IIS AppPool\DefaultAppPool
Namesto tega sem, da bi ustavil kričanje strank, mapi dodelil naslednja dovoljenja:
IUSR
IIS_IUSRS
Zdi se, da je to delovalo, vendar me skrbi, da je bilo nastavljenih preveč privilegijev. Na spletu sem prebral nasprotujoče si informacije o tem, ali je IUSR tu sploh potreben. Ali lahko kdo pojasni, kateri uporabniki/pooblastila bi zadostovali za ustvarjanje in brisanje dokumentov v tej mapi? Ali je IUSR del skupine IIS_IUSRS?
Oglejte si moj odgovor spodaj. To sem žal moral storiti, saj nekateri nedavni predlogi niso bili dobro premišljeni ali celo varni (IMO).
IUSR je del skupine IIS_IUSER.zato mislim, da lahko odstranite dovoljenja za IUSR brez skrbi. Nadaljnje branje
Vendar se je sčasoma pojavila težava, ko se je vse več sistemskih storitev Windows začelo izvajati kot NETWORKSERVICE. Storitve, ki se izvajajo kot NETWORKSERVICE, lahko namreč posegajo v druge storitve, ki se izvajajo pod isto identiteto. Ker delovni procesi IIS privzeto izvajajo kodo tretjih oseb (klasično kodo ASP, ASP.NET, PHP), je bil čas, da delovne procese IIS ločimo od drugih sistemskih storitev Windows in delovne procese IIS izvajamo pod edinstveno identiteto. Operacijski sistem Windows zagotavlja funkcijo, imenovano "Virtualni računi", ki omogoča, da IIS ustvari edinstvene identitete za vsakega od svojih bazenov aplikacij. DefaultAppPool je privzeti bazen, ki je dodeljen vsem bazenom aplikacij, ki jih ustvarite.
Za večjo varnost lahko identiteto IIS DefaultAppPool Identity spremenite v ApplicationPoolIdentity.
V zvezi z dovoljenjem, Create (Ustvari) in Delete (Izbriši) so povzete vse pravice, ki jih je mogoče dodeliti. Torej vse, kar ste dodelili skupini IIS_USERS, je tisto, kar bodo potrebovali. Nič več in nič manj.
Upam, da vam bo to pomagalo.
@EvilDr V svojem okolju AD lahko ustvarite račun IUSR[identifikator] in omogočite, da se določen sklad aplikacij izvaja pod tem računom IUSR[identifikator]:
"Bazen aplikacij" > "Napredne nastavitve" > "Identiteta" > "Račun po meri"
V naprednih nastavitvah nastavite spletno stran na "Uporabnik aplikacije (prehodna avtentikacija)" in ne na "Poseben uporabnik".
Sedaj dajte temu IUSR_[identifikator] ustrezna dovoljenja NTFS za datoteke in mape, na primer: modify on companydata.
Uporabil bi določenega uporabnika (in NE uporabnika aplikacije). Nato bom v aplikaciji omogočil poosebljanje. Ko to storite, se bo ne glede na to, kateri račun je nastavljen kot posebni uporabnik, ta pooblastila uporabljala za dostop do lokalnih virov v tem strežniku (ne za zunanje vire).
Nastavitev posebnega uporabnika je posebej namenjena dostopu do lokalnih virov.