2010-05-27 29 views
5

Khách hàng của chúng tôi có yêu cầu mở rộng chức năng của dự án chính phủ lớn hiện có của họ. Đây là một dự án ASP.NET 3.5 (mới được nâng cấp từ 2.0).Hiển thị trang web từ một trang khác trong trang asp

Giải pháp hiện tại là một hành vi gần như không thể duy trì được nên họ đã quyết định rằng họ muốn cung cấp chức năng mới bằng cách lưu trữ nó trên một trang web khác được hiển thị trong trang web hiện tại.

Làm thế nào để làm điều này là tốt nhất nên tôi không chắc chắn ngay bây giờ và nếu có bất kỳ vấn đề an ninh ngăn chặn nó hoặc cần phải được xem xét.

Về cơ bản người dùng sẽ đăng nhập vào trang web hiện tại như bình thường và khi bấm vào một liên kết nhất định, trang sẽ tải như bình thường với một số loại khung hoặc kiểm soát có trong đó nội dung của trang từ trang web khác . I E. Họ không muốn chỉ đơn giản là chuyển hướng đến trang web khác mà họ muốn hiển thị nó được nhúng trong trang hiện tại sao cho các menu hiện có, v.v. vẫn có sẵn.

Tôi tin rằng nếu thông tin cần được chuyển đến trang nhúng, nó sẽ được thực hiện bằng chuỗi truy vấn vì tôi không chắc chắn liệu có cách nào khác để thực hiện điều này hay không.

Bất kỳ ai cũng có thể cung cấp cho tôi một số gợi ý về nơi bắt đầu để tìm cách triển khai điều này hoặc bất kỳ cạm bẫy tiềm năng nào mà tôi cần biết.

Cảm ơn

+0

Bạn có cần phải được xác thực để xem trang web? – alejandrobog

+0

nó sẽ được giả định rằng chúng đã được xác thực và chúng tôi sẽ thêm một số loại kiểm tra để đảm bảo rằng các trang web mới không thể được truy cập trực tiếp ở tất cả ngay cả khi chúng đã được xác thực. –

+0

iframe hoặc javascript - đó là 2 cách duy nhất mà bạn biết. – RPM1984

Trả lời

2

nếu 2 trang web được lưu trữ từ cùng một mạng (độ trễ thấp giữa chúng) bạn có thể sử dụng máy chủ trạng thái để quản lý phiên. theo cách đó, khi bạn xác thực trên một trang web, bạn cũng sẽ được xác thực trên trang web khác và chia sẻ trạng thái người dùng trên chúng.

của nó khá đơn giản, trong cấu hình web của bạn trong mỗi máy chủ web mà bạn muốn trỏ đến máy chủ trạng thái (có thể được đặt trên một trong các máy chủ web)

<configuration> 
    <system.web> 
    <sessionState mode="StateServer" 
     stateConnectionString="192.168.1.103:42424" 
    /> 
    </system.web> 
</configuration> 

http://en.csharp-online.net/ASP.NET_State_Management%E2%80%94Storing_Session_State_out_of_Process

1

tạo một thư mục ảo dưới tên miền chính. Nếu tên miền của bạn là www.mydomain.com thì hãy tạo một thư mục ảo www.mydomain.com/site và chuyển ứng dụng trang web mới trong/thư mục ảo của trang web. Đây là liên kết nên trở nên rất nhiều relavant. Với ứng dụng thư mục ảo này cũng sẽ giữ lại tất cả các cookie miền được đặt bởi tên miền chính.

+0

Tôi không chắc liệu điều đó có trả lời được câu hỏi của tôi hay không. Tôi đã thu hút nhiều hơn về mặt thực sự nhận được một trang để hiển thị trong một trang khác và chuyển ít nhất một chuỗi truy vấn đến trang được nhúng. Ngoài ra câu hỏi cuối cùng của bạn có ý nghĩa gì? Cảm ơn –

1

Tôi khuyên bạn nên tạo trang web thứ hai giống hệt trang đầu tiên hoặc ít nhất sử dụng cùng một MasterPage, vì vậy bạn có thể chuyển hướng từ trang này sang trang khác mà không có bất kỳ sự khác biệt nào về hình ảnh.

Nếu trang web của bạn cần xác thực, hãy xem xét rằng bạn sẽ cần phải làm điều gì đó để ngăn người dùng đăng nhập hai lần, tùy chọn có thể gửi mã thông báo được mã hóa đến trang web thứ hai.

Tất cả điều này nếu bạn buộc phải có một trang web thứ hai, nếu không chỉ cần sử dụng một thư mục ảo

0

Tôi sẽ sử dụng iFrame để nhúng trang web mà ở bên trong ứng dụng hiện tại của bạn. Chỉ cần đặt thuộc tính "src" và chuyển vào bất kỳ tham số chuỗi truy vấn nào mà trang web khác cần hiển thị chính xác.

Bạn vẫn có thể vượt qua trong dữ liệu nhạy cảm trong chuỗi truy vấn, tuy nhiên nó sẽ đảm bảo để mã hóa nó trước khi gửi nó trong.

Tôi biết nó không phải là giải pháp thanh lịch nhất, nhưng nó được công việc làm. Và từ mô tả của ứng dụng hiện có, nó không có vẻ như khách hàng của bạn quan tâm đến "sang trọng" :)

Hope this helps

0

Bạn có thể sử dụng một cái gì đó như UFrame. Tôi đã sử dụng nó một vài lần và dường như làm một công việc khá tốt với nó ...

"tốt lành của UpdatePanel và IFRAME kết hợp"

http://www.codeproject.com/KB/aspnet/uframe.aspx

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