Quyền đối với thư mục IIS7 cho ứng dụng web


91

Tôi đang sử dụng xác thực windows mà không mạo danh trên trang web mạng nội bộ của công ty tôi với IIS7.

Trong IIS7, tài khoản nào được sử dụng để truy cập vào thư mục chứa ứng dụng web của tôi bằng các cài đặt này?

Nó sẽ là IIS_IUSRS? Hay DỊCH VỤ MẠNG? Hay một cái khác mà tôi không biết?


Câu trả lời:


127

Trong IIS 7 (không phải IIS 7.5), các trang web truy cập các tệp và thư mục dựa trên tài khoản được đặt trên nhóm ứng dụng cho trang web. Theo mặc định, trong IIS7, tài khoản này là NETWORK SERVICE.

Chỉ định danh tính cho nhóm ứng dụng (IIS 7)

Trong IIS 7.5 (Windows 2008 R2 và Windows 7), nhóm ứng dụng chạy trong ApplicationPoolIdentity được tạo khi nhóm ứng dụng khởi động. Nếu bạn muốn đặt ACLS cho tài khoản này, bạn cần chọn IIS AppPool\ApplicationPoolNamethay vì NT Authority\Network Service.


34
Lưu ý rằng nó không phải theo nghĩa đen IIS AppPool\ApplicationPoolName, nhưng IIS AppPool\<yourpoolname>.
Jeff S

21
Trong IIS 7.5, Định danh mặc định cho Nhóm ứng dụng là ApplicationPoolIdentity. ApplicationPoolIdentity đại diện cho tài khoản người dùng Windows có tên "IIS APPPOOL \ AppPoolName", được tạo khi Nhóm ứng dụng được tạo, trong đó AppPoolName là tên của Nhóm ứng dụng. Người dùng "IIS APPPOOL \ [AppPoolName]" theo mặc định là thành viên của nhóm IIS_IUSRS. Vì vậy, bạn cần cấp quyền ghi cho nhóm
IIS_IUSRS

Những người sử dụng các phiên bản Windows mới hơn có thể thấy bài viết này hữu ích cho việc định cấu hình tài khoản 'AppPool \ DefaultAppPool' nếu họ gặp sự cố tương tự: iis.net/learn/manage/configuring-security/… . Điều này cũng giúp tránh lỗi mà tôi gặp phải sau khi cập nhật từ Windows 8 lên 8.1, trong đó có nội dung: "Đã xảy ra lỗi khi tải tệp cấu hình: Không thể bắt đầu theo dõi các thay đổi đối với [đường dẫn tệp đầy đủ] vì quyền truy cập bị từ chối.".
Matty J

Tôi đã cấp đầy đủ quyền cho Nhóm ứng dụng .. nhưng vẫn nhận được quyền truy cập bị từ chối.
Yousi

26

http://forums.iis.net/t/1187650.aspx có câu trả lời. Đặt xác thực iis thành danh tính nhóm ứng dụng sẽ giải quyết vấn đề này.

Trong Xác thực IIS, Xác thực Ẩn danh được đặt thành "Người dùng Cụ thể". Khi tôi thay đổi nó thành Nhóm ứng dụng, tôi có thể truy cập trang web.

Để đặt, hãy nhấp vào trang web của bạn trong IIS và nhấp đúp vào "Xác thực". Nhấp chuột phải vào "Xác thực ẩn danh" và nhấp vào tùy chọn "Chỉnh sửa ...". Chuyển từ "Người dùng cụ thể" sang "Danh tính nhóm ứng dụng". Bây giờ, bạn sẽ có thể thiết lập quyền đối với tệp và thư mục bằng IIS AppPool \ {Your App Pool Name}.


3
Điều này đã giúp rất nhiều. Nếu bạn không thay đổi Xác thực ẩn danh từ "Người dùng cụ thể" thành "Danh tính nhóm ứng dụng" thì các thay đổi về quyền của bạn sẽ không phản ánh khi đặt quyền của IIS AppPool \ {Your App Pool Name}.
David

ÔI CHÚA ƠI. Có vẻ như không ai nhận về điều này. Điều này chỉ giải quyết hàng giờ đào.
Joe Swindell

19

Chạy IIS 7.5, tôi đã may mắn thêm quyền cho người dùng máy tính cục bộ IUSR . Người dùng nhóm ứng dụng không hoạt động.


16

Nếu đó là bất kỳ sự trợ giúp nào cho bất kỳ ai, hãy cấp quyền cho nhóm "IIS_IUSRS".

Lưu ý rằng nếu bạn không thể tìm thấy "IIS_IUSRS", hãy thử đặt trước nó với tên máy chủ của bạn, chẳng hạn như "MySexyServer \ IIS_IUSRS".


Điều này đã làm điều đó cho tôi. Tôi đã thiếu tên máy chủ và chưa thấy ai đề cập đến điều đó.
drichardson

Vì điều đó, bạn luôn có thể sử dụng ký hiệu cục bộ ". \ IIS_IUSRS"
Bernhard

3

Làm việc cho tôi trong 30 giây, ngắn gọn và thú vị:

  1. Trong Trình quản lý IIS (chạy inetmgr)
  2. Đi tới ApplicationPool -> Advanced Settings
  3. Đặt ApplicationPoolIdentity thành NetworkService
  4. Đi tới tệp, nhấp chuột phải vào thuộc tính, đi tới bảo mật, nhấp vào chỉnh sửa, nhấp vào thêm, nhập Dịch vụ mạng (có khoảng trắng, sau đó nhấp vào 'kiểm tra tên') và cung cấp toàn quyền kiểm soát (hoặc chỉ bất kỳ quyền nào bạn cần)

Điều đó đã làm được! Cảm ơn
Yazan Khalaileh

1
  1. Làm việc trên IIS 7.5 và Windows 7, tôi không thể cấp quyền APPPOOL / Mypool
  2. Các quyền IUSR và IIS_IUSRS không hoạt động với tôi
  3. Tôi phải giải quyết vấn đề theo cách này:

    -Ứng dụng bảng điều khiển được tạo bằng C #
    -Ứng dụng này sử dụng createeventsource như thế này

    if (! System.Diagnostics.EventLog.SourceExists (sourceName)) System.Diagnostics.EventLog.CreateEventSource (sourceName, logName);

    -Xây dựng giải pháp và lấy tệp .exe

    -Chạy exe với tư cách là quản trị viên. Điều này tạo tệp nhật ký.

LƯU Ý: Đừng nhớ Trình xem sự kiện phải được làm mới để xem nhật ký.

Tôi hy vọng giải pháp này sẽ giúp ai đó :)

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.