it-swarm.asia

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

ASP.Net web sitemi localhost üzerinde 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ılar var:

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

Bunu düzeltmek için ne yapabilirim?

82
Nathan Ridley

IIS 7, IIS aracılığıyla dosyalara erişmek için varsayılan kullanıcı olarak "IUSR" oluşturur. Kullanıcı IUSR'nin dosyalara/klasörlere okuma erişimi olmasını sağlayın.

IUSR'nin Access'i okuyup okumadığını nasıl kontrol edebilirim? Sağ Tıkla -> Klasör -> Özellikler -> Güvenlik Sekmesi IUSR'nin Grup mu yoksa kullanıcı adları listesinde mi, yoksa Hayır'a bakın.

Düzenle -> Ekle -> Gelişmiş -> Şimdi Bul -> IUSR'yi seçin ve dört kez Tamam'ı tıklayın.

124
Ejaz

Bu başka bir forumda buldum, bu yüzden kredi alamıyorum ama yaptım ve benim için çalıştı:

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

Kimlik Doğrulaması'na tıklayın ve Anonim Kimlik Doğrulaması'nı seçtikten sonra düzenle'ye tıklayın. Açılan pencerede Uygulama Havuzu kimliği'ni seçin ve Tamam'a tıklayın. "

33
Stryder

Aynı sorunu IIS 7.5) yaşadım. Benim için, aşağıdaki adımlar sorunu çözmek için çalıştı:

  • Aç IIS Yönetici
  • Düzenlemek istediğiniz web sitesini tıklayın
  • Kimlik Doğrulama öğesini çift tıklayın
  • Anonim Kimlik Doğrulama ve ardından İşlemler altında Düzenle ... öğesini tıklayın.
  • Belirli kullanıcı yerine ygulama havuzu kimliği kimlik bilgilerini kullanmak için değişiklik yapın (benimki IUSR idi)

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

22
Mark

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

Anonim ise, IIS yöneticisi'ne gidin, Kimlik Doğrulama simgesinden Anonim Kimlik Doğrulama adını seçin, ardından Eylemler'deki Düzenle düğmesini tıklayın. Orada hangi kullanıcının belirtildiğini kontrol edin ve site dosyaları/klasörleri.

Bir tür oturum açma sisteminiz varsa, oturum açtığınız kullanıcıların site dosyalarına ilişkin izinleri olduğundan emin olun ve çalıştırdığınız uygulama havuzunun kimliğinin en az okuma erişimine sahip olduğundan emin olun dosyalara.

10
MattB

Merhaba Benim için IIS 8 iş: 1) Devam IIS sanal dizin - 2) kimlik doğrulaması - 3) Anonim kimlik doğrulaması - 4) Uygulama Havuzu Kimliği ayarlayın.

3
Alex

Varsayılan olarak, IIS 7.5 ile, her Uygulama Havuzu kendi "sanal kimliği" altında çalışır. Uygulama Havuzu'nun kimliği dosya sistemine erişmek için kullanılan kimlik bilgileridir.

Mekaniklerinden emin değilim, ancak Microsoft, belirli yükleme senaryolarında hizmet hesapları oluşturma ihtiyacını azaltırken varsayılan yüklemenin güvenliğini artırmak için bunu yaptı. Ne olursa olsun, bu "sanal kimlik" hesabını tanımlamanız ve dizininize erişim izni vermeniz ya da App Pool'un hizmet hesabını değiştirmeniz gerekecektir.

App Pool 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 this makalesine bakın.

3
ntcolonel

Yanıtlama, kabul edilen cevaba yapılan yorumlardan bilgi eklemek için.

IIS 7.5 içinde, IIS_IUSRS grubu zaten dahil edilmiştir, ancak dosya erişimine/indirilmesine izin vermek için izinlere ayrı IUSR grubu yine de eklenmelidir.

Hesaplardaki farklar hakkında daha fazla bilgi için bkz --- IIS'de Yerleşik Kullanıcı ve Grup Hesaplarını Anlama.

2
Chris Pickering

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

  • IIS7 -> Uygulama Havuzları'na gidin

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

    Süreç Modeli bölümünü bulun ve alanı, web sitesi klasörünüzdeki dosyalara erişimi olduğundan emin olduğunuz bir kullanıcının kimliği olarak değiştirin (benim durumumda yerel yönetici)

2
Daniel Hedenström

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ıklama ve Tıklama Özelliği İzinleri
  • Yürüt'ü seçin
  • Tamam'ı tıklayın.

Şimdi web sitenizi yenilemeyi deneyin.

1
nixkuroi

Bunu deneyin ... 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 öğesini seçin -> Sağ tıklayın Özellikler -> Üye olduğundan emin olun IIS_WPG ve kullanıcıların değil Misafirlerin.


Server 2008 R2 ile çalışıyorum ve IUser hesabı listede yok.

1
Matt

IIS aspnet_regiis -c Kullanarak istemci tarafını yüklemeyi deneyin ve ardından IIS'yi sıfırlayın.

1
titilola