2008-11-25 30 views
14

Tôi làm cách nào để đặt các thẻ xác thực khác nhau cho các phần khác nhau của ứng dụng web của tôi? Giả sử tôi có:Cài đặt xác thực nhiều/khác nhau trong web.config

/ 
/folder1/ 
/folder2/ 

Có thể chỉ định các thẻ <authentication/> khác nhau cho mỗi thư mục không?

Tôi muốn thư mục1 sử dụng xác thực Windows nhưng thư mục2 sử dụng Xác thực biểu mẫu.

Tôi đã thử thực hiện trong thẻ <location/> nhưng có vẻ như bạn không thể có thẻ <authentication/> trong một thẻ <location/>, ít nhất là không qua VS 2008 với thẻ được tích hợp trong máy chủ web.

Lỗi này nói - Lỗi 3 Lỗi là sử dụng phần được đăng ký là allowDefinition = 'MachineToApplication' ngoài cấp ứng dụng. Lỗi này có thể được gây ra bởi một thư mục ảo không được cấu hình như một ứng dụng trong IIS.

<location path="/folder1"> 
    <system.web> 
     <authentication mode="Forms" /> 
     <authorization> 
     <deny users="?"/> 
     </authorization> 
    </system.web> 
    </location> 

Trả lời

11

Bạn chỉ có thể có <authentication /> ở cấp cao nhất web.config. Bạn có thể phải tạo nhiều ứng dụng. tức là bạn có thể tạo một ứng dụng trong một ứng dụng và sử dụng các chế độ xác thực khác nhau trong mỗi ứng dụng.

0

Tôi nghĩ rằng bạn có thể thiết lập sự cho phép hình thức xác thực trên folder1 để

<allow users="*" /> 

sau đó kiểm soát các cửa sổ truy cập thông qua thiết lập các cửa sổ điều khoản trên thư mục.

Tôi chưa thử, nhưng tôi không thể nghĩ tại sao điều đó không hiệu quả.

1

Các cài đặt này chỉ hợp lệ ở cấp cơ sở của ứng dụng ASP.Net của bạn. Để sử dụng các thiết lập khác nhau trong một thư mục con, bạn sẽ cần phải đi vào IIS và đặt thư mục con đó thành một ứng dụng mới.

Khi bạn thực hiện việc này, thư mục sẽ có biểu tượng khác trong trình quản lý II. Bên trong thư mục con của bạn, tạo tệp web.config mới và thêm cài đặt xác thực mới tại đó.

Thông tin khác có sẵn tại Creating Applications.

+0

Phải, nhưng có vẻ như trong trình sửa lỗi VS2008, nó không thể xử lý các thư mục con này dưới dạng thư mục ứng dụng, tôi cần kiểm tra bằng cách đẩy tới máy chủ IIS –

+0

Nếu bạn đang sử dụng máy chủ web Visual Studio tích hợp sẵn có, bạn là chính xác, bạn sẽ cần phải thiết lập các ứng dụng trong IIS. –

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