IIS 7.5 (Windows 7) - Kesalahan HTTP 401.3 - Tidak sah


81

Saya mencoba menguji situs web ASP.Net saya di localhost dan saya mendapatkan kesalahan ini:

HTTP Error 401.3 - Unauthorized
You do not have permission to view this directory or page because of
the access control list (ACL) configuration or encryption settings for
this resource on the Web server.

Saya memiliki pengguna berikut di folder aplikasi situs web, dengan izin baca / tulis lengkap:

  • LAYANAN JARINGAN
  • IIS_IUSRS
  • SISTEM
  • Administrator
  • Nathan (saya)

Apa yang bisa saya coba untuk memperbaikinya?


Saya sudah mengejar masalah ini selama beberapa jam sekarang. Saya sudah memiliki IUSR dan Server \ IUSR akan membaca izin. Masalah tambang ternyata adalah folder terenkripsi yang diekstrak dari file Zip. Jika nama folder berwarna hijau, coba hapus kotak centang dari Pengaturan lanjutan dari kotak Properti. Ini memperbaiki masalah saya.
Lionel Morrison

Jawaban:


123

IIS 7 juga menciptakan "IUSR" sebagai pengguna default untuk mengakses file melalui IIS. Sehingga membuat pengguna IUSR memiliki akses baca ke file / folder.

Bagaimana cara memeriksa apakah IUSR telah membaca Access? Klik Kanan -> Folder -> Properti -> Tab Keamanan Lihat apakah IUSR ada dalam daftar Grup atau nama pengguna, Jika Tidak.

Klik Edit -> Tambah -> Tingkat Lanjut -> Temukan Sekarang -> Pilih IUSR dan klik OK empat kali


5
Pastikan Anda mencari dari lokasi yang tepat. Saya mencari IUSR di domain pekerjaan saya dan tidak menemukan apa pun. Lalu saya mengubah lokasi menjadi nama mesin saya.
Mike Blandford

8
Catatan: Diperlukan IUSR dan IIS_IUSRS memiliki akses agar dapat berfungsi di mesin saya. Saya mencoba menghapus IIS_IUSRS setelah menambahkan IUSR, berpikir IUSR yang saya butuhkan, tetapi itu serak.
kdawg

1
Itu mengejutkan saya bahwa menambahkan saja IIS_IUSRstidak cukup; Saya juga harus menambahkan IUSR. Layak diingat: o)
Owen Blacker

Tentunya pengguna IUSR sudah menjadi anggota IIS_IUSRS secara default? Server saya tampaknya tidak menyebutkan IUSR tentang izin default yang ditetapkan untuk wwwroot.
NickG

33

Menemukan ini di forum lain, jadi saya tidak dapat mengambil kredit tetapi saya berhasil dan itu berhasil untuk saya:

"Coba ubah pengaturan otentikasi Anonim di IIS7:

Klik Otentikasi dan klik edit setelah memilih Otentikasi Anonim. Di jendela pembukaan pilih identitas Pool Aplikasi dan klik OK. "


5
Inilah yang melakukannya untuk saya.
Chris Marisic

Saya menggunakan peniruan dan ini entah bagaimana masalahnya. Tidak yakin mengapa, tetapi berhasil!
Jarrod

Ini menghentikan saya dari merobek semua rambut saya hari ini. Terima kasih.
pauska

Pada IIS 8.5, tampaknya default untuk aplikasi baru adalah tidak menggunakan Application Pool Identity, tetapi hanya IUSR. Sepertinya agak getcha bagiku!
Pathogen

Coba tebak masuk akal untuk menginginkan identitas terpisah untuk "pengguna yang menjalankan kumpulan aplikasi", dan "pengguna yang ditiru oleh kumpulan aplikasi setelah otentikasi 'anonim'" - tetapi hanya dengan melihat ke belakang, dan setelah menemukan jawaban ini!
shambulator

20

Saya memiliki masalah yang sama di IIS 7.5 pada Windows Server 2008. Bagi saya, langkah-langkah berikut berfungsi untuk memperbaiki masalah:

  • Buka IIS Manager
  • Klik situs web yang ingin Anda edit
  • Klik dua kali Otentikasi
  • Klik Otentikasi Anonim , lalu klik Edit ... di bawah Tindakan
  • Ubah untuk menggunakan kredensial identitas kumpulan Aplikasi alih-alih pengguna Khusus (milik saya adalah IUSR)

Setelah saya melakukan perubahan ini, kesalahan 401.3 saya hilang.


10

Apakah Anda menggunakan mekanisme login, atau hanya otentikasi anonim?

Jika anonim, buka manajer IIS, di ikon Otentikasi, pilih nama Otorisasi Anonim, lalu klik tombol Edit dalam Tindakan. Periksa pengguna yang ditentukan di sana dan pastikan ia memiliki izin untuk file / folder situs.

Jika Anda memiliki beberapa bentuk sistem login, pastikan bahwa pengguna yang Anda masuki memiliki izin untuk file-file untuk situs tersebut, dan pastikan bahwa ID kumpulan aplikasi yang Anda jalankan setidaknya memiliki akses baca ke file.


3

Secara default, dengan IIS 7.5, masing-masing Application Pool berjalan di bawah "identitas virtual" sendiri. Identitas App Pool adalah kredensial yang digunakan untuk mengakses sistem file.

Saya tidak yakin dengan mekanisme itu, tetapi Microsoft melakukan ini untuk meningkatkan keamanan instalasi default sambil mengurangi kebutuhan untuk membuat akun layanan dalam skenario pemasangan tertentu. Apa pun yang terjadi, Anda harus mengidentifikasi akun "identitas virtual" ini dan memberikannya akses ke direktori Anda, atau mengubah akun layanan App Pool.

Identitas virtual App Pool dinamai "IIS AppPool \", jadi jika Anda menggunakan DefaultAppPool, identitasnya adalah "IIS AppPool \ DefaultAppPool".

Lihat artikel ini untuk detail lebih lengkap.


3

Hai Bagi Saya pada pekerjaan IIS 8: 1) Buka direktori virtual IIS - 2) otentikasi - 3) Otentikasi anonim - 4) set Application Pool Identity.


Baik jawaban IUSR dan jawaban ini diperlukan untuk solusi lengkap dalam semua kasus yang saya alami
Brian Knoblauch

2

Karena tidak ada jawaban di atas yang membantu saya, saya pikir saya akan membagikan bagaimana saya memecahkan masalah ini ketika saya menabraknya di mesin lokal saya yang menjalankan win7 dan IIS7.

  • Pergi ke IIS7 -> Aplikasi Pool

    Temukan kumpulan aplikasi situs Anda (dalam kasus saya DefaultAppPool), klik kanan dan pilih Opsi Lanjutan.

    Temukan bab Model Proses dan ubah field Identity ke pengguna yang Anda kenal pasti memiliki akses ke file di folder situs web Anda (dalam kasus saya admin lokal)


2

Menjawab untuk memasukkan info dari komentar pada jawaban yang diterima.

Di IIS 7.5 pada Windows Server 2008r2, grup IIS_IUSRS sudah termasuk, tetapi grup IUSR yang terpisah masih harus ditambahkan ke izin untuk memungkinkan akses / download file.

Untuk informasi lebih lanjut tentang perbedaan dalam akun, lihat Memahami Pengguna yang Terpasang dan Akun Grup di IIS.


1

Coba ini ... Buka Manajemen Komputer (klik kanan pada komputer saya dan pilih Kelola) -> Pengguna dan Grup Lokal -> Pengguna -> Pilih IUSR_MACHINENAME -> Klik kanan Properti -> Pastikan itu adalah anggota IIS_WPG dan pengguna dan bukan Tamu.


Saya bekerja dengan Server 2008 R2 dan akun IUser tidak tersedia dalam daftar.


1

Coba instal sisi klien dari IIS menggunakan aspnet_regiis -cdan kemudian reset IIS.


1

Untuk pengguna yang tidak cukup:

Saya berhasil dengan ini:

  • Buka Tampilan Fitur situs web Anda.
  • Pergi ke Pemetaan Handler.
  • Temukan jalur untuk .cshtml
  • Klik Kanan dan Klik Edit Izin Fitur
  • Pilih Jalankan
  • Tekan OK.

Sekarang coba segarkan situs web Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.