2010-05-03 28 views
10

Tôi có một số dữ liệu người dùng cụ thể mà tôi cần lưu trữ trong SharePoint và có thể truy cập được cho người dùng thông qua các webparts tùy chỉnh. Hãy nói một danh sách các URL ưa thích. Cách đơn giản nhất để lưu trữ thông tin này là gì?Cách lưu trữ dữ liệu người dùng cụ thể trong SharePoint

  • Một số tài sản có sẵn cho SPUser hoặc tương tự mà tôi không biết.
  • SPList, được liên kết thông qua cột Người dùng.
  • Bảng cơ sở dữ liệu tùy chỉnh, được liên kết thông qua ID người dùng SP.
  • Nếu không?

Nghe giống như RTFM với tôi, nhưng tôi có thể hỏi google những câu hỏi sai.

[Cập nhật]

Chúng tôi cuối cùng lưu trữ thông tin này trong một danh sách đơn giản, ở một vị trí cố định, với một lĩnh vực Person để lọc trên. Có lẽ giải pháp đơn giản nhất thực sự, nhưng về mặt kỹ thuật tôi nghĩ câu trả lời được đánh dấu bên dưới là đẹp hơn.

Trả lời

5

Nếu bạn muốn làm cho chúng có thể sử dụng lại trên tuyển tập trang cho mỗi người dùng, bạn có thể thêm trường vào danh sách thông tin người dùng. Bạn có thể thêm bộ thu tính năng vào giải pháp phần web của bạn có thể tạo cột này hoặc kiểm tra xem cột này có tồn tại trong danh sách Thông tin người dùng hay không để đảm bảo rằng Cột tồn tại.

Danh sách Thông tin người dùng là danh sách SharePoint chuẩn mà SharePoint sử dụng để lưu trữ thông tin người dùng. Để truy cập Danh sách thông tin người dùng, bạn có thể truy cập trang web Gốc của tuyển tập trang và sử dụng thuộc tính SiteUserInfoList

E.G.

SPList userInformationlist = SPContext.Current.Site.RootWeb.SiteUserInfoList; 
//Or 
SPWeb web = SPContext.Current.Site.RootWeb; 
SPList userInformationlist = web.SiteUserInfoList; 

Để truy cập vào một danh sách người dùng mục bạn có thể sử dụng Người dùng Id để có được những ListItem trở lại từ người dùng thông tin Danh sách

V.D.

SPListItem currentUserItem = userInformationlist.GetItemById(web.CurrentUser.ID); 

Nếu bạn đang sử dụng MOSS bạn có thể lưu trữ thông tin này trong hồ sơ người dùng và làm cho nó có sẵn trên trang web của bộ sưu tập này không cần trang web của tôi để được kích hoạt. Bạn sẽ cần phải sử dụng các lớp User Profile để truy cập.

+0

Đề xuất khá hay! Không biết về SiteUserInfoList, và tôi có thể có được một bộ sưu tập Site (thiết kế bố trí SharePoint lớn hơn vẫn đang chờ xử lý). Bởi vì số lượng dữ liệu tôi cần để lưu trữ là nhỏ và nó là nguyên tử, tôi có thể persit nó trong một lĩnh vực Lưu ý duy nhất. –

+0

Túi thuộc tính của hồ sơ người dùng cũng sẽ hoạt động tốt. Nghe có vẻ hơi nặng để tạo hồ sơ chỉ để lưu trữ một số dữ liệu, nhưng nó có thể hoạt động rất tốt. –

+0

Danh sách thông tin người dùng là danh sách WSS cốt lõi, MOSS có cơ sở dữ liệu hồ sơ người dùng được SSP cung cấp, đồng bộ một số dữ liệu vào Danh sách thông tin người dùng cục bộ. nó phụ thuộc vào nơi bạn muốn truy cập dữ liệu này khi Danh sách thông tin người dùng được lưu trữ trong phần đánh dấu trang. –

1

Đây là một câu hỏi rất hay.

Mặc dù tôi không có câu trả lời hoàn hảo, đây là một số điều bạn có thể xem xét:

  • Lưu trữ dữ liệu trong một cookie trình duyệt nếu điều này là khả thi.

  • Lưu trữ trong rootweb của tuyển tập trang trong Thuộc tính, được khóa bằng ID đăng nhập của người dùng. Bạn có thể muốn nâng cao khi đọc/ghi các thuộc tính chỉ trong trường hợp người dùng có quyền truy cập vào một mạng con, nhưng không phải là rootweb.

+1

Tôi sẽ không đề xuất bộ sưu tập Thuộc tính Rootwebs; bạn sẽ có các vấn đề hiệu suất trên trang web của bạn vì nó không được thiết kế cho một số lượng lớn các bản ghi. –

+0

Tạo suy nghĩ, nhưng các cookie không bền bỉ như tôi muốn mọi thứ trở thành. –

2

Tôi sẽ tìm các thuộc tính trên hồ sơ người dùng. Bạn không muốn lưu trữ thông tin trên trang web gốc vì nó không phải là thông tin liên quan đến web gốc. Ví dụ của bạn với các url yêu thích, mỗi người dùng có một bộ sưu tập "liên kết nhanh" trên tiểu sử của họ. Một nơi lý tưởng để lưu trữ url cho mỗi người dùng. :)

2

Xây dựng một webpart đọc/ghi cơ sở dữ liệu tùy chỉnh và bạn sẽ có sự linh hoạt để sử dụng webpart trên SiteCollections, WebApps hoặc thậm chí là các trang trại riêng biệt.

Điều này đã được triển khai tại nơi tôi làm việc và đó là một thành công lớn. Chúng tôi cần một cách để cung cấp cho người dùng cuối của mình một lựa chọn lớn các liên kết quan trọng, thường được sử dụng. Người dùng cuối có khả năng hiển thị các liên kết hữu ích cho chức năng công việc cụ thể của họ và có một webpart có thể được đặt bất cứ nơi nào để tham khảo các liên kết đó là quan trọng đối với họ. Bạn cũng có khả năng “quản trị viên” truy cập cơ sở dữ liệu tùy chỉnh và cập nhật bất kỳ URL nào có thể thay đổi mà không có người dùng cuối bị ảnh hưởng hoặc kết thúc bằng liên kết bị hỏng.

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