2011-08-16 27 views
5

Chúng tôi có một trang web mạng nội bộ IIS7 chạy dưới đường ống tích hợp, chủ yếu là ASP.Net với một vài trang ASP cũ. Trang này cho phép truy cập nặc danh vào hầu hết các khu vực, nhưng sử dụng Windows Authentication để bảo vệ các thư mục nhất định. Yêu cầu các trang ASP.Net trong các thư mục được bảo vệ hoạt động như mong đợi (người dùng được phép có thể nhìn thấy chúng, những người khác bị từ chối), nhưng bất kỳ người dùng nào cũng có thể xem bất kỳ trang ASP cổ điển nào trong các thư mục được bảo vệ, bất kể quyền truy cập.Xác thực Windows không hoạt động cho các trang ASP cổ điển (nhưng không hoạt động cho các trang ASP.Net w/trong cùng một trang)

Tôi nghi ngờ mô-đun xác thực cửa sổ không được yêu cầu cho các yêu cầu đối với các trang ASP cổ điển. Chúng tôi đang chạy trong chế độ đường ống tích hợp, và tôi tìm thấy bài viết này (http://learn.iis.net/page.aspx/244/how-to-take-advantage-of-the-iis7-integrated-pipeline/) cho biết rằng bạn cần loại bỏ và thêm lại các mô-đun một cách rõ ràng nếu bạn muốn tận dụng lợi thế của đường ống tích hợp cho các yêu cầu non -ASP.Net. Tôi cố gắng để sao chép ví dụ của bài viết chỉ thay thế FormsAuthenticationModule với WindowsAuthenticationModule bằng cách thêm dòng sau vào web.config ở thư mục gốc ứng dụng:

<system.webServer> 
<modules> 
     <remove name="WindowsAuthentication" /> 
     <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" preCondition="" /> 
</modules> 
</system.webServer> 

Tuy nhiên, cổ điển trang ASP vẫn đang được phục vụ bất kể phép.

Trả lời

2

Các trang ASP cổ điển hoàn toàn bỏ qua web.config hoặc bất kỳ .config thực sự.

Cách duy nhất để xử lý điều này cho ASP cổ điển là thông qua IIS, bạn sẽ phải di chuyển các trang ASP cổ điển để được theo trang web ảo riêng biệt sau đó cho trang web ảo thiết lập Windows xác thực và vô hiệu hóa truy cập vô danh.

Điều này có thể giúp bạn cũng như:
IIS7: Setup Integrated Windows Authentication like in IIS6

+0

Cảm ơn @shadowWizard, nhưng tôi bối rối. Tôi nghĩ rằng một trong những lợi ích của đường ống tích hợp là bạn có thể áp dụng bảo mật ASP.Net cho bất kỳ yêu cầu nào (ASP.Net, ASP cổ điển, thậm chí là nội dung tĩnh - html và hình ảnh). Từ bài viết tôi liên kết tới: "Cho phép các dịch vụ được cung cấp bởi cả mô-đun gốc và được quản lý để áp dụng cho tất cả các yêu cầu, bất kể trình xử lý. Ví dụ: Xác thực biểu mẫu được quản lý có thể được sử dụng cho tất cả nội dung, bao gồm các trang ASP, CGI và tệp tĩnh. " Nếu xác thực mẫu được quản lý có thể được áp dụng, tại sao không được quản lý xác thực Windows? –

+0

Tôi không có chuyên gia về điều này, nhưng những gì tôi biết là Windows xác thực có nghĩa là sau đây: máy chủ gửi cho trình duyệt khách hàng một số tiêu đề nói "Xin vui lòng xác định chính mình". Trình duyệt của khách hàng tự động gửi thông tin đăng nhập hoặc yêu cầu người dùng nhập chúng, tùy thuộc vào loại trình duyệt và cài đặt. Bây giờ, tất cả điều này đang xảy ra "đằng sau hậu trường" và ở mức độ thấp của giao tiếp trình duyệt/máy chủ. Xác thực biểu mẫu ở cấp cao hơn. Đó là lựa chọn của tôi về điều này, tôi hy vọng một người biết rõ hơn sẽ xuất hiện và giải thích nó chính xác hơn. –

Các vấn đề liên quan