it-swarm-vi.tech

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

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ì?

82
Nathan Ridley

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

124
Ejaz

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. "

33
Stryder

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 đã khắc phục sự cố:

  • Mở IIS Trình quản lý
  • Nhấp vào trang web bạn muốn chỉnh sửa
  • Nhấp đúp vào Xác thực
  • Nhấp vào Xác thực ẩn danh, sau đó nhấp Chỉnh sửa ... bên dưới Hành động
  • Thay đổi để sử dụng Nhận dạng nhóm ứng dụng thông tin đăng nhập 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.

22
Mark

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 truy cập 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 Hành động. 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 tập tin/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.

10
MattB

Hi For Me on IIS 8 công việc: 1) Tiếp tục IIS thư mục ảo - 2) xác thực - 3) Xác thực ẩn danh - 4) đặt Nhận dạng nhóm ứng dụng.

3
Alex

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 chính nó. Danh tính của Nhóm ứng dụng 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 thêm chi tiết đầy đủ.

3
ntcolonel

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 Hiểu về tài khoản nhóm và người dùng tích hợp trong IIS.

2
Chris Pickering

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
Daniel Hedenström

Đố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.

1
nixkuroi

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
Matt

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

1
titilola