权限操作(部分代码,仅共参考)
1
/// <summary>
2
/// 判断组是否存在
3
/// </summary>
4
/// <param name="web"></param>
5
/// <param name="groupname"></param>
6
/// <returns></returns>
7
public bool IsExistGroup(SPWeb web, string groupname)
8
{
9
try
10
{
11
foreach (SPGroup grouplist in web.SiteGroups)//判断组是否存在
12
{
13
if (grouplist.ToString().ToLower() == groupname.ToLower())
14
return true;
15
}
16
return false;
17
}
18
catch (Exception)
19
{
20
throw;
21
}
22
}
23
24
/// <summary>
25
/// 新建组
26
/// </summary>
27
/// <param name="web"></param>
28
/// <param name="groupname"></param>
29
/// <param name="member"></param>
30
/// <param name="spuser"></param>
31
/// <param name="description"></param>
32
/// <returns></returns>
33
public bool AddGroup(SPWeb web, string groupname, SPMember member, SPUser spuser, string description)
34
{
35
try
36
{
37
if (!IsExistGroup(web, groupname))
38
{
39
web.SiteGroups.Add(groupname, member, spuser, description);//新建组
40
return true;
41
}
42
return false;
43
}
44
catch (Exception)
45
{
46
47
throw;
48
}
49
}
50
51
/// <summary>
52
/// 判断指定组是否存在用户
53
/// </summary>
54
/// <param name="web"></param>
55
/// <param name="username">Domin\\Name形式</param>
56
/// <param name="groupname"></param>
57
/// <returns></returns>
58
public bool IsExistUser(SPWeb web, string username, string groupname)
59
{
60
try
61
{
62
foreach (SPUser userlist in web.SiteGroups[groupname].Users)//判断指定组是否存在用户
63
{
64
if (userlist.ToString().ToLower() == username.ToLower())
65
return true;
66
}
67
return false;
68
}
69
catch (Exception)
70
{
71
throw;
72
}
73
}
74
75
/// <summary>
76
/// 根据指定的组新建用户
77
/// </summary>
78
/// <param name="web"></param>
79
/// <param name="loginname">登录名:Domin\\Name形式</param>
80
/// <param name="groupname">组名称</param>
81
/// <param name="email">Email</param>
82
/// <param name="cnname">中文名</param>
83
/// <param name="notes">用户说明</param>
84
/// <returns>bool</returns>
85
public bool AddUserToGroup(SPWeb web, string loginname, string groupname, string email, string cnname, string notes)
86
{
87
try
88
{
89
if (!IsExistUser(web, loginname, groupname))
90
{
91
web.SiteGroups[groupname].AddUser(loginname, email, cnname, notes);//新建用户
92
return true;
93
}
94
return false;
95
}
96
catch (Exception)
97
{
98
99
throw;
100
}
101
}
102
/// <summary>
103
/// 组权限分配与定义(New)
104
/// </summary>
105
/// <param name="web"></param>
106
/// <param name="groupname"></param>
107
/// <param name="roles"></param>
108
/// <returns></returns>
109
public bool AddGroupToRoles(SPWeb web, string groupname, string[] roles)
110
{
111
try
112
{
113
string[] _roles = roles;
114
int rolemun = _roles.Length;
115
116
if (IsExistGroup(web, groupname))
117
{
118
//改变站点继承权
119
if (!web.HasUniqueRoleDefinitions)
120
{
121
web.RoleDefinitions.BreakInheritance(true, true);//复制父站点角色定义并且保持权限
122
}
123
124
//站点继承权改变后重新设置状态
125
web.AllowUnsafeUpdates = true;
126
127
//组权限分配与定义(New)
128
SPRoleDefinitionCollection roleDefinitions = web.RoleDefinitions;
129
SPRoleAssignmentCollection roleAssignments = web.RoleAssignments;
130
SPMember memCrossSiteGroup = web.SiteGroups[groupname];
131
SPPrincipal myssp = (SPPrincipal)memCrossSiteGroup;
132
SPRoleAssignment myroles = new SPRoleAssignment(myssp);
133
SPRoleDefinitionBindingCollection roleDefBindings = myroles.RoleDefinitionBindings;
134
if (rolemun > 0)
135
{
136
for (int i = 0; i < rolemun; i++)
137
{
138
roleDefBindings.Add(roleDefinitions[_roles[i]]);
139
}
140
}
141
roleAssignments.Add(myroles);
142
return true;
143
}
144
return false;
145
}
146
catch (Exception)
147
{
148
149
throw;
150
}
151
}
152
153
protected void btnCreateSite_Click(object sender, EventArgs e)
154
{
155
156
try
157
{
158
SPSite site = new SPSite("http://contososrv:8010/");
159
160
//string spwt = SPWebTemplate.WebTemplateSTS;//默认选择协作站点模板
161
162
web = site.OpenWeb("Test/");
163
web.AllowUnsafeUpdates = true;
164
SPMember memUser = web.Users[0];
165
SPUser suser = web.Users[0];
166
167
168
//新建组
169
//web.SiteGroups.Add("skyteam3", memUser, suser, "new skyteam");
170
//web.SiteGroups["skyteam3"].AddUser("adr\\administrator", "pccai@adr.svic1", "蔡", "系统维修人员");
171
//web.Groups["skyteam2"].AddUser("adr\\pccai", "pccai@adr.svic1", "蔡", "系统维修人员");
172
173
174
//新建子站点
175
string currentTemplate = web.WebTemplate;
176
//web.Webs.Add("Test2", "站点名称2", "站点描述2", 2052, "_GLOBAL_#0", true, false);
177
178
179
//打开子站点
180
SPWeb web2 = site.OpenWeb("Test/Test2");
181
web2.AllowUnsafeUpdates = true;
182
// web2.SiteGroups.Add("skyteam6", memUser, suser, "new skyteam");//新建组
183
// web2.SiteGroups["skyteam6"].AddUser("adr\\administrator", "administrator@adr.svic1", "边", "系统维修人员");
184
185
186
//改变站点继承权
187
if (!web2.HasUniqueRoleDefinitions)
188
{
189
web2.RoleDefinitions.BreakInheritance(true, true);
190
}
191
192
//站点继承权改变后重新设置状态
193
web2.AllowUnsafeUpdates = true;
194
195
196
197
//添加权限级别 (Role)
198
//SPRoleDefinition roleDefinition = new SPRoleDefinition();
199
//roleDefinition.Name = "项目角色";
200
//roleDefinition.Description = "项目角色可以批准所有项目情况.";
201
//roleDefinition.BasePermissions = SPBasePermissions.FullMask ^ SPBasePermissions.ManagePermissions;
202
//web2.RoleDefinitions.Add(roleDefinition);
203
204
205
//更改权限级别 (Permissions)
206
SPRoleDefinitionCollection roles = web2.RoleDefinitions;
207
SPRoleDefinition roleDefinition1 = roles["读取"];
208
roleDefinition1.BasePermissions = SPBasePermissions.AddListItems |
209
SPBasePermissions.BrowseDirectories |
210
SPBasePermissions.EditListItems |
211
SPBasePermissions.DeleteListItems |
212
SPBasePermissions.AddDelPrivateWebParts;
213
roleDefinition1.Update();
214
215
216
//用户权限分配与定义(New)
217
SPRoleDefinitionCollection roleDefinitions = web2.RoleDefinitions;
218
SPRoleAssignmentCollection roleAssignments = web2.RoleAssignments;
219
SPRoleAssignment roleAssignment = new SPRoleAssignment("adr\\administrator", "administrator@Somewhere.com", "Display_Name", "Notes");
220
SPRoleDefinitionBindingCollection roleDefBindings = roleAssignment.RoleDefinitionBindings;
221
roleDefBindings.Add(roleDefinitions["项目角色"]);
222
roleAssignments.Add(roleAssignment);
223
224
225
//权限定义(Old)
226
//SPRoleCollection siteGroups = web2.Roles;
227
//siteGroups.Add("skyteam6", "Description", SPRights.ManageWeb | SPRights.ManageSubwebs);
228
229
230
//获得权限定义
231
SPRoleDefinition sprole = roleDefinitions.GetByType(SPRoleType.Reader);
232
string spname = sprole.Name;
233
234
235
//组权限分配与定义(New)
236
SPRoleDefinitionCollection roleDefinitions1 = web2.RoleDefinitions;
237
SPRoleAssignmentCollection roleAssignments1 = web2.RoleAssignments;
238
SPMember memCrossSiteGroup = web2.SiteGroups["skyteam6"];
239
SPPrincipal myssp = (SPPrincipal)memCrossSiteGroup;
240
SPRoleAssignment myroles = new SPRoleAssignment(myssp);
241
SPRoleDefinitionBindingCollection roleDefBindings1 = myroles.RoleDefinitionBindings;
242
roleDefBindings1.Add(roleDefinitions1["设计"]);
243
roleDefBindings1.Add(roleDefinitions1["读取"]);
244
roleAssignments1.Add(myroles);
245
246
247
//组权限分配与定义(Old)
248
//SPMember member = web2.Roles["skyteam"];
249
//web2.Permissions[member].PermissionMask =
250
// SPRights.ManageLists | SPRights.ManageListPermissions;
251
252
253
254
//更改列表权限(Old)
255
//SPList list = site.Lists["通知"];
256
//SPPermissionCollection perms = list.Permissions;
257
//SPUserCollection users = site.Users;
258
//SPMember member = users["ADR\\pccai"];
259
//list.Permissions[member].PermissionMask = SPRights.AddListItems | SPRights.EditListItems;
260
261
262
263
// PermissionCollection perc = web.Permissions;
264
//perc.AddUser("adr\\administrator", "administrator@adr.srvc1", "title", "Notes", PortalRight.AllSiteRights);
265
// SecurityManager.AddRole(context, "title", "descriptions", PortalRight.ManageSite);
266
267
268
269
}
270
catch (Exception)
271
{
272
throw;
273
}
274
275
}

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

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

msn: pccai1983@hotmail.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步