2008-09-22 8 views
5

Tôi đang tạo một trang asp.net độc lập cần được nhúng vào một trang chia sẻ bằng phần Web Page Viewer. Trang asp.net được xuất bản cho cùng một máy chủ trên một cổng khác, cho tôi URL để nhúng.Hiển thị người dùng Sharepoint đã được xác thực hiện tại từ một trang asp.net Page Viewer

Yêu cầu là sau khi người dùng được xác thực bằng xác thực Sharepoint, họ điều hướng đến trang chứa phần web asp.net để có thêm tùy chọn.

Điều tôi cần làm từ trang asp.net này là truy vấn Sharepoint cho tên người dùng hiện đã được xác thực, sau đó hiển thị trang này trên trang từ mã asp.net.

Tất cả đều hoạt động tốt khi tôi gỡ lỗi ứng dụng khỏi VS, nhưng khi được xuất bản và hiển thị mặc dù Sharepoint, tôi luôn nhận NULL như người dùng.

Bất kỳ đề xuất nào về cách tốt nhất để làm việc này sẽ được đánh giá cao.

Trả lời

7

Nếu bạn muốn truy xuất người dùng hiện đã được xác thực từ ngữ cảnh SharePoint, bạn cần giữ nguyên trong ngữ cảnh SharePoint. Điều này có nghĩa là lưu trữ ứng dụng web tùy chỉnh của bạn trong SharePoint (xem http://msdn.microsoft.com/en-us/library/cc297200.aspx). Sau đó, từ ứng dụng tùy chỉnh của bạn tham khảo Microsoft.SharePoint và sử dụng đối tượng SPContext để lấy tên người dùng. Ví dụ:

SPContext.Current.Web.CurrentUser.LoginName 

Bạn vẫn có thể sử dụng Phần Web trình xem trang để tham chiếu URL của trang web, giờ đây nằm trong ngữ cảnh SharePoint.

0

Khi nó hoạt động trong gỡ lỗi, là đang được sử dụng trong SharePoint?

Trang của bạn và trang web Sharepoint cũng có thể nằm trên các máy chủ khác nhau khi có liên quan đến xác thực - để nhận được thông tin, bạn có thể cần phải chuyển nó qua QueryString từ webpart nếu bạn có thể - hoặc bạn có thể cần phải làm cho webpart của riêng bạn để làm điều này (chỉ cần đặt một IFRAME trong phần với src thiết lập để trang của bạn với QueryString đi qua tên người dùng).

Dường như đây sẽ là vấn đề bảo mật nếu bạn sử dụng tên cho bất kỳ điều gì - nếu bạn chỉ hiển thị nó, thì có thể là tốt.

Nếu bạn thực sự cần được xác thực, bạn có thể cần thêm xác thực vào web.config của trang web lưu trữ trang độc lập của bạn.

chỉnh sửa: Tôi nghĩ bạn nên may mắn hơn khi đặt trang của mình trên cùng một cổng và máy chủ dưới dạng SharePoint.

+0

không, ở chế độ gỡ lỗi, nó độc lập – BenB

0

Tôi nghi ngờ bạn sẽ gặp khó khăn khi truy vấn SharePoint cụ thể cho tên người dùng hiện đã được xác thực. Tôi không thể nghĩ ra một cách dễ dàng truy cập vào ngữ cảnh SharePoint từ một ứng dụng web riêng biệt như bạn đang mô tả.

Tôi không biết loại lược đồ xác thực bạn đang sử dụng, nhưng bạn có thể cân nhắc sử dụng Kerberos, vì tôi thấy rằng nó có thể làm cho các loại kịch bản này trở nên dễ dàng hơn một chút bằng cách cho phép ủy nhiệm và truyền thông tin đăng nhập từ ứng dụng đến ứng dụng hoặc máy chủ đến máy chủ.

1

Cảm ơn đống cho câu trả lời!

Chỉ ra rằng miễn là trang asp.net đang sử dụng cùng một URL và cổng với trang Sharepoint, xác thực hoạt động trên cả hai trang web.

Giải pháp là sử dụng Thư mục ảo bên trong trang chia sẻ và cài đặt trang asp.net tại đó.