IIS 7.5 (Windows 7) - HTTP Hatası 401.3 - Yetkisiz


81

ASP.Net web sitemi localhost'ta test etmeye çalışıyorum ve bu hatayı alıyorum:

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.

Web sitesi uygulama klasöründe, tam okuma / yazma izinlerine sahip aşağıdaki kullanıcılara sahibim:

  • AĞ HİZMETİ
  • IIS_IUSRS
  • SİSTEM
  • Yöneticiler
  • Nathan (ben)

Bunu düzeltmek için ne deneyebilirim?


Bu konuyu birkaç saattir takip ediyorum. Zaten IUSR var ve Server \ IUSR Okuma iznini alacak. Mayın sorunu, bir Zip dosyasından çıkarılmış şifreli klasörler olarak ortaya çıktı. Klasör adı yeşil ise, onay kutusunu Özellik kutusunun Gelişmiş ayarlarından kaldırmayı deneyin. Bu sorunumu çözdü.
Lionel Morrison,

Yanıtlar:


123

IIS 7 ayrıca, IIS üzerinden dosyalara erişmek için varsayılan kullanıcı olarak "IUSR" oluşturur. Bu nedenle, kullanıcının IUSR'sini dosyalara / klasörlere okuma erişimi sağlayın.

IUSR'un Access'i okuduğunu nasıl kontrol ederim? Sağ Tıkla -> Klasör -> Özellikler -> Güvenlik Sekmesi IUSR'nin Grup veya kullanıcı adları listesinde olup olmadığını, Hayır ise

Düzenle -> Ekle -> Gelişmiş -> Şimdi Bul -> IUSR’yi seç ve dört kez Tamam


5
Doğru yerden aradığınızdan emin olun. Çalışma alanımda IUSR'yi arıyorum ve hiçbir şey bulamadım. Sonra yerini makine ismimle değiştirdim.
Mike Blandford

8
Not: Makinemde çalışabilmesi için hem IUSR hem de IIS_IUSRS gerektiriyordu. IUSR'yi ekledikten sonra IIS_IUSRS'yi kaldırmayı denedim, IUSR'nin ihtiyacım olan tek şey olduğunu düşünmüştüm, ama kırıldı.
kdawg

1
Beni sadece eklemenin IIS_IUSRsyeterli olmadığını şaşırttı ; Ayrıca eklemek zorunda kaldım IUSR. Hatırlamaya değer: o)
Owen Blacker

Tabii ki, IUSR kullanıcısı zaten varsayılan olarak bir IIS_IUSRS üyesi mi? Sunucum, wwwroot için ayarlanan varsayılan izinleri konusunda IUSR'den bahsetmiyor.
NickG

33

Bunu başka bir forumda buldum, bu yüzden kredi alamam, ancak yaptım ve benim için çalıştı:

Msgstr "IIS7'deki Anonim kimlik doğrulama ayarını değiştirmeyi deneyin:

Kimlik Doğrulama seçeneğine tıklayın ve Anonim Kimlik Doğrulama seçeneğini seçtikten sonra düzenle düğmesine tıklayın. Açılan pencerede Uygulama Havuzu kimliği'ni seçin ve Tamam'ı tıklayın. "


5
Bu benim için yaptı.
Chris Marisic

Kimliğe bürünme kullanıyorum ve bu bir şekilde sorun oldu. Neden olduğundan emin değilim, ama işe yaradı!
Jarrod

Bu, bugün tüm saçlarımı yırtmamı engelledi. Teşekkür ederim.
pauska

IIS 8.5'te, yeni bir uygulamanın varsayılanı Uygulama Havuzu Kimliğini kullanmak değil, yalnızca IUSR kullanmak gibi görünüyor. Bana biraz yakaladı gibi geldi!
Pathogen

Sanırım "uygulama havuzunu çalıştıran kullanıcı" ve "isimsiz" kimlik doğrulamasından sonra "uygulama havuzu tarafından kimliğe bürünmüş kullanıcı" için ayrı kimlikleri istemek bir anlam ifade etsin - ancak yalnızca dikkatle ve bu cevabı bulduktan sonra!
shambulator

20

Aynı sorunu, Windows Server 2008 işletim sistemindeki IIS 7.5'te de gördüm. Benim için, aşağıdaki adımlar sorunu çözmek için çalıştı:

  • IIS Yöneticisi'ni açın
  • Düzenlemek istediğiniz web sitesini tıklayın
  • Kimlik Doğrulama'ya çift ​​tıklayın
  • Click Anonim Kimlik Doğrulama , ardından Düzenle ... altında Eylemler
  • Belirli bir kullanıcı yerine Uygulama havuzu kimliği kimlik bilgilerini kullanmak için değişiklik yap (benimki IUSR idi)

Bu değişikliği yaptıktan sonra 401.3 hatalarım kayboldu.


10

Bir giriş mekanizması mı kullanıyorsunuz yoksa sadece isimsiz bir kimlik doğrulaması mı?

Adsızsa, IIS yöneticisine gidin, Kimlik Doğrulama simgesinde, Adsız Kimlik Doğrulama adını seçin ve ardından Eylemler içindeki Düzenle düğmesini tıklayın. Hangi kullanıcının burada belirtildiğini kontrol edin ve site dosyalarına / klasörlerine izin verdiğinden emin olun.

Bir tür giriş sistemi kullanıyorsanız, giriş yaptığınız kullanıcıların sitenin dosyalarına izin verdiğinden ve giriş yaptığınız uygulama havuzunun kimliğinin en azından okuma erişimine sahip olduğundan emin olun. dosyalara.


3

Varsayılan olarak, IIS 7.5 ile her Uygulama Havuzu kendi "sanal kimliğine" göre çalışır. Uygulama Havuzunun kimliği, dosya sistemine erişmek için kullanılan kimlik bilgileridir.

Mekaniğinden emin değilim, ancak Microsoft, belirli kurulum senaryolarında hizmet hesapları oluşturma ihtiyacını hafifletirken varsayılan kurulumun güvenliğini artırmak için bunu yaptı. Ne olursa olsun, sonuçta bu "sanal kimlik" hesabını tanımlamanız ve dizine erişim izni vermeniz veya Uygulama Havuzunun hizmet hesabını değiştirmeniz gerekecek.

Uygulama Havuzu sanal kimlikleri "IIS AppPool \" olarak adlandırılır, bu nedenle DefaultAppPool kullanıyorsanız, kimliği "IIS AppPool \ DefaultAppPool" olur.

Daha ayrıntılı bilgi için bu makaleye bakın.


3

IIS 8 çalışmalarında Benim İçin Merhaba: 1) IIS sanal dizinine gidin - 2) kimlik doğrulaması - 3) Anonim kimlik doğrulaması - 4) Uygulama Havuzu Kimliği'ni ayarlayın.


Hem IUSR cevabı hem de bu cevap, karşılaştığım tüm davalarda tam bir çözüm için gerekli
Brian Knoblauch

2

Yukarıdaki yanıtların hiçbiri bana yardımcı olmadığından, win7 ve IIS7 çalıştıran yerel makinemle karşılaştığımda bu sorunu nasıl çözdüğümü paylaşacağımı düşündüm.

  • IIS7'ye Git -> Uygulama Havuzları

    Sitenizin uygulama havuzunu bulun (benim durumumda DefaultAppPool), sağ tıklayın ve Gelişmiş Seçenekler'i seçin.

    İşlem Modeli bölümünü bulun ve alanı değiştirin Kimliği bildiğiniz bir kullanıcının kesin olarak web sitenizdeki klasörlere erişebildiğinden emin olun (benim durumumda yerel yönetici)



1

Bunu dene ... Bilgisayar Yönetimi'ne gidin (bilgisayarıma sağ tıklayın ve Yönet'i seçin) -> Yerel Kullanıcılar ve Gruplar -> Kullanıcılar -> IUSR_MACHINENAME Seçin -> Sağ Tıklama Özellikleri -> Bir üye olduğundan emin olun IIS_WPG ve kullanıcılar ve Konuklar.


Server 2008 R2 ile çalışıyorum ve IUser hesabı listede mevcut değil.


1

IIS'nin istemci tarafını yüklemeyi deneyin aspnet_regiis -cve ardından IIS'yi sıfırlayın.


1

Bunun yeterli olmadığı kullanıcılar için:

Bununla çalışmak için aldım:

  • Web sitenizin Özellik Görünümü'nü açın.
  • İşleyici Eşlemeleri'ne gidin.
  • .Cshtml yolunu bulun
  • Sağ Tıkla ve Özellik İzinlerini Düzenle'yi tıklayın.
  • Yürüt'ü seçin
  • Tamam'a bas.

Şimdi web sitenizi yenilemeyi deneyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.