最近被SharePoint列表视图分权限的问题困扰着,在网上搜到些解决方案,比较不错的是Bewise.SharePoint.SPViewPermissionSetting的解决方案,但是在修改视图权限配置的时候经常出问题,不知道是什么原因,后来从codeplex上找到了这个解决方案的源码,下来学习一下,总结如下:
它是通过自定义WebControl来修改ListViewWebPart的ViewSelector模板实现视图权限过滤的。
开工:
第一步、
先建个ListViewPermissionConfig列表,用来存放视图权限的配置信息。
列表栏:ListName(单行文本)、ViewName(单行文本)、ViewGuid(单行文本)、Permission(人员或用户组,允许多选)。
第二步、
开写代码,示意代码如下:

2

3

4

5

6

7

8

9

10



11

12



13


14

15

16

17

18

19

20



21

22

23



24

25



26

27

28

29

30

31

32

33



34

35



36

37

38

39



40

41

42



43

44

45

46

47



48

49

50

51



52

53

54

55

56

57

58

59

60

61

62

63

64

65



66

67



68

69



70

71



72

73



74

75

76

77

78

79

80

81



82

83

84

85

86



87

88

89

90

91

92

编译完成后部署到GAC中。
第三部、
修改DefaultTemplate.ascx文件,在文件头部加入以下代码:
接着搜索"SharePoint:ViewSelectorMenu",替换成"<ItsControls:CustomerViewMenu",最终改完效果如下:
重启IIS后,进入网站,在ListViewPermissionConfig列表中配置一条视图权限信息。
说明:ViewGuid和Permission两项必须填写,列表默认视图无论是否配置权限都会显示。
最终配置完的效果如下图: