IIS 7.5 (Windows 7) - Lỗi HTTP 401.3 - Không được phép


81

Tôi đang cố kiểm tra trang web ASP.Net của mình trên localhost và tôi gặp lỗi này:

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.

Tôi có những người dùng sau trên thư mục ứng dụng trang web, với quyền đọc / ghi đầy đủ:

  • DỊCH VỤ MẠNG
  • IIS_IUSRS
  • HỆ THỐNG
  • Quản trị viên
  • Nathan (tôi)

Tôi có thể cố gắng khắc phục điều này là gì?


Tôi đã theo đuổi vấn đề này trong một vài giờ. Tôi đã có IUSR và Máy chủ \ IUSR sẽ cho phép Đọc. Vấn đề của tôi hóa ra là các thư mục được mã hóa được trích xuất từ ​​tệp Zip. Nếu tên thư mục có màu xanh lá cây, hãy thử xóa hộp kiểm khỏi cài đặt Nâng cao của hộp Thuộc tính. Điều này đã khắc phục vấn đề của tôi.
Lionel Morrison

Câu trả lời:


123

IIS 7 cũng tạo "IUSR" là người dùng mặc định để truy cập các tệp qua IIS. Vì vậy, làm cho người dùng IUSR có quyền truy cập đọc vào các tập tin / thư mục.

Làm cách nào để kiểm tra xem IUSR có đọc Access không? Nhấp chuột phải -> Thư mục -> Thuộc tính -> Tab bảo mật Xem nếu IUSR nằm trong danh sách tên nhóm hoặc tên người dùng, Nếu không.

Nhấp vào Chỉnh sửa -> Thêm -> Nâng cao -> Tìm ngay -> Chọn IUSR và nhấp OK bốn lần


5
Hãy chắc chắn rằng bạn đang tìm kiếm từ đúng vị trí. Tôi đã tìm kiếm IUSR trên miền công việc của tôi và không tìm thấy gì. Sau đó, tôi thay đổi vị trí để tên máy của tôi.
Mike Blandford

8
Lưu ý: Nó yêu cầu cả IUSR và IIS_IUSRS có quyền truy cập để nó hoạt động trên máy của tôi. Tôi đã thử loại bỏ IIS_IUSRS sau khi thêm IUSR, nghĩ rằng IUSR là tất cả những gì tôi cần, nhưng nó bị rè.
kdawg

1
Nó làm tôi ngạc nhiên rằng chỉ cần thêm IIS_IUSRslà không đủ; Tôi cũng đã phải thêm IUSR. Đáng nhớ: o)
Owen Blacker 17/03/13

Chắc chắn người dùng IUSR đã là thành viên của IIS_IUSRS theo mặc định? Máy chủ của tôi dường như không đề cập đến IUSR trên các quyền mặc định được đặt cho wwwroot.
NickG

33

Tìm thấy điều này trên một diễn đàn khác, vì vậy tôi không thể lấy tín dụng nhưng tôi đã làm nó và nó đã làm việc cho tôi:

"Thử thay đổi cài đặt xác thực ẩn danh trong IIS7:

Nhấp vào Xác thực và nhấp vào chỉnh sửa sau khi chọn Xác thực ẩn danh. Trong cửa sổ mở, chọn danh tính Nhóm ứng dụng và bấm OK. "


5
Đây là những gì đã làm cho tôi.
Chris Marisic

Tôi đang sử dụng mạo danh và điều này bằng cách nào đó là vấn đề. Không chắc chắn tại sao, nhưng nó đã làm việc!
Jarrod

Điều này ngăn tôi xé hết tóc hôm nay. Cảm ơn bạn.
pauseka

Trên IIS 8.5, có vẻ như mặc định cho một ứng dụng mới không phải là sử dụng Danh tính nhóm ứng dụng, mà chỉ là IUSR. Có vẻ như một chút gotcha với tôi!
Tác nhân gây bệnh

Đoán có ý nghĩa khi muốn nhận dạng riêng biệt cho "người dùng chạy nhóm ứng dụng" và "người dùng bị mạo danh bởi nhóm ứng dụng sau khi xác thực 'ẩn danh' - nhưng chỉ với nhận thức muộn và sau khi tìm thấy câu trả lời này!
shambulator

20

Tôi gặp vấn đề tương tự trong IIS 7.5 trên Windows Server 2008. Đối với tôi, các bước sau đây đã được khắc phục sự cố:

  • Mở trình quản lý IIS
  • Nhấp vào trang web bạn muốn chỉnh sửa
  • Bấm đúp Xác thực
  • Nhấp vào Xác thực ẩn danh , sau đó nhấp vào Chỉnh sửa ... bên dưới Hành động
  • Thay đổi để sử dụng thông tin nhận dạng nhóm ứng dụng thay vì người dùng cụ thể (của tôi là IUSR)

Sau khi tôi thực hiện thay đổi này, lỗi 401.3 của tôi biến mất.


10

Bạn đang sử dụng một cơ chế đăng nhập, hoặc chỉ là auth ẩn danh?

Nếu ẩn danh, hãy vào trình quản lý IIS, trong biểu tượng Xác thực, chọn tên Xác thực ẩn danh, sau đó nhấp vào nút Chỉnh sửa trong Tác vụ. Kiểm tra xem người dùng nào được chỉ định ở đó và đảm bảo rằng nó có quyền đối với các tệp / thư mục trang web.

Nếu bạn có một số dạng hệ thống đăng nhập, hãy đảm bảo rằng người dùng mà bạn đang đăng nhập có quyền đối với các tệp cho trang web và đảm bảo rằng ID của nhóm ứng dụng bạn đang chạy có ít nhất quyền truy cập đọc vào các tập tin.


3

Theo mặc định, với IIS 7.5, mỗi Nhóm ứng dụng chạy dưới "danh tính ảo" của riêng nó. Danh tính của App Pool là thông tin đăng nhập được sử dụng để truy cập hệ thống tệp.

Tôi không chắc về cơ chế của nó, nhưng Microsoft đã làm điều này để tăng tính bảo mật của cài đặt mặc định trong khi giảm nhu cầu tạo tài khoản dịch vụ trong các tình huống cài đặt nhất định. Bất kể, kết quả cuối cùng là bạn sẽ phải xác định tài khoản "danh tính ảo" này và cấp cho nó quyền truy cập vào thư mục của bạn hoặc thay đổi tài khoản dịch vụ của App Pool.

Các danh tính ảo của Nhóm ứng dụng được đặt tên là "IIS AppPool \", vì vậy nếu bạn đang sử dụng DefaultAppPool, danh tính của nó sẽ là "IIS AppPool \ DefaultAppPool".

Xem này bài viết để biết chi tiết hoàn chỉnh hơn.


3

Hi For Me trên IIS 8 hoạt động: 1) Truy cập thư mục ảo IIS - 2) xác thực - 3) Xác thực ẩn danh - 4) đặt Nhận dạng nhóm ứng dụng.


Cả câu trả lời IUSR và câu trả lời này đều được yêu cầu cho một giải pháp hoàn chỉnh trong tất cả các trường hợp tôi gặp phải
Brian Knoblauch

2

Vì không có câu trả lời nào ở trên giúp tôi, tôi nghĩ tôi sẽ chia sẻ cách tôi giải quyết vấn đề này khi tôi gặp nó trên máy cục bộ chạy win7 và IIS7.

  • Truy cập IIS7 -> Nhóm ứng dụng

    Tìm nhóm ứng dụng của trang web của bạn (trong trường hợp của tôi là DefaultAppPool), nhấp chuột phải và chọn Tùy chọn nâng cao.

    Tìm chương Mô hình quy trình và thay đổi trường Danh tính thành người dùng mà bạn biết chắc chắn có quyền truy cập vào các tệp trong thư mục trang web của bạn (trong trường hợp của tôi là quản trị viên cục bộ)


2

Trả lời để bao gồm thông tin từ các ý kiến ​​về câu trả lời được chấp nhận.

Trong IIS 7.5 trên Windows Server 2008r2, nhóm IIS_IUSRS đã được bao gồm, nhưng nhóm IUSR riêng biệt vẫn phải được thêm vào quyền để cho phép truy cập / tải xuống tệp.

Để biết thêm thông tin về sự khác biệt trong tài khoản, hãy xem Tìm hiểu tài khoản nhóm và người dùng tích hợp trong IIS.


1

Hãy thử điều này ... Chuyển đến Quản lý máy tính (nhấp chuột phải vào máy tính của tôi và chọn Quản lý) -> Người dùng và nhóm cục bộ -> Người dùng -> Chọn IUSR_MACHINENAME -> Nhấp chuột phải Thuộc tính -> Đảm bảo rằng đó là thành viên của IIS_WPG và người dùng chứ không phải Khách.


Tôi đang làm việc với Server 2008 R2 và tài khoản IUser không có sẵn trong danh sách.


1

Hãy thử cài đặt phía máy khách của IIS bằng cách sử dụng aspnet_regiis -cvà sau đó đặt lại IIS.


1

Đối với người dùng nơi điều này không đủ:

Tôi đã làm cho nó để làm việc với điều này:

  • Mở Chế độ xem tính năng của trang web của bạn.
  • Chuyển đến Handler Mappings.
  • Tìm đường dẫn cho .cshtml
  • Nhấp chuột phải và nhấp vào Chỉnh sửa quyền tính năng
  • Chọn thực thi
  • Nhấn OK.

Bây giờ hãy thử làm mới trang web của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.