Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ClaimsPrincipal.cs
Go to the documentation of this file.
2using System.IO;
6
8
10{
11 private enum SerializationMask
12 {
13 None,
16 }
17
19
20 private readonly byte[] _userSerializationData;
21
23
25
27 {
28 get
29 {
30 return s_identitySelector;
31 }
32 set
33 {
35 }
36 }
37
39 {
40 get
41 {
43 }
44 set
45 {
47 }
48 }
49
50 public virtual IEnumerable<Claim> Claims
51 {
52 get
53 {
54 foreach (ClaimsIdentity identity in Identities)
55 {
56 foreach (Claim claim in identity.Claims)
57 {
58 yield return claim;
59 }
60 }
61 }
62 }
63
64 protected virtual byte[]? CustomSerializationData => _userSerializationData;
65
66 public static ClaimsPrincipal? Current
67 {
68 get
69 {
70 if (s_principalSelector == null)
71 {
72 return SelectClaimsPrincipal();
73 }
74 return s_principalSelector();
75 }
76 }
77
79
80 public virtual IIdentity? Identity
81 {
82 get
83 {
84 if (s_identitySelector != null)
85 {
87 }
89 }
90 }
91
93 {
96 {
97 if (currentPrincipal != null)
98 {
100 }
101 return null;
102 }
103 return result;
104 }
105
110
112 {
113 if (identities == null)
114 {
115 throw new ArgumentNullException("identities");
116 }
117 foreach (ClaimsIdentity identity in identities)
118 {
119 if (identity != null)
120 {
121 return identity;
122 }
123 }
124 return null;
125 }
126
128 {
129 }
130
132 {
133 if (identities == null)
134 {
135 throw new ArgumentNullException("identities");
136 }
138 }
139
140 public ClaimsPrincipal(IIdentity identity)
141 {
142 if (identity == null)
143 {
144 throw new ArgumentNullException("identity");
145 }
146 if (identity is ClaimsIdentity item)
147 {
149 }
150 else
151 {
152 _identities.Add(new ClaimsIdentity(identity));
153 }
154 }
155
157 {
158 if (principal == null)
159 {
160 throw new ArgumentNullException("principal");
161 }
163 {
165 }
166 else if (claimsPrincipal.Identities != null)
167 {
169 }
170 }
171
173 {
174 if (reader == null)
175 {
176 throw new ArgumentNullException("reader");
177 }
179 int num = reader.ReadInt32();
180 int num2 = 0;
181 if ((serializationMask & SerializationMask.HasIdentities) == SerializationMask.HasIdentities)
182 {
183 num2++;
184 int num3 = reader.ReadInt32();
185 for (int i = 0; i < num3; i++)
186 {
188 }
189 }
190 if ((serializationMask & SerializationMask.UserData) == SerializationMask.UserData)
191 {
192 int count = reader.ReadInt32();
194 num2++;
195 }
196 for (int j = num2; j < num; j++)
197 {
198 reader.ReadString();
199 }
200 }
201
202 public virtual void AddIdentity(ClaimsIdentity identity)
203 {
204 if (identity == null)
205 {
206 throw new ArgumentNullException("identity");
207 }
208 _identities.Add(identity);
209 }
210
212 {
213 if (identities == null)
214 {
215 throw new ArgumentNullException("identities");
216 }
218 }
219
220 public virtual ClaimsPrincipal Clone()
221 {
222 return new ClaimsPrincipal(this);
223 }
224
226 {
227 if (reader == null)
228 {
229 throw new ArgumentNullException("reader");
230 }
231 return new ClaimsIdentity(reader);
232 }
233
235 {
236 if (match == null)
237 {
238 throw new ArgumentNullException("match");
239 }
240 foreach (ClaimsIdentity identity in Identities)
241 {
242 if (identity == null)
243 {
244 continue;
245 }
246 foreach (Claim item in identity.FindAll(match))
247 {
248 yield return item;
249 }
250 }
251 }
252
253 public virtual IEnumerable<Claim> FindAll(string type)
254 {
255 if (type == null)
256 {
257 throw new ArgumentNullException("type");
258 }
259 foreach (ClaimsIdentity identity in Identities)
260 {
261 if (identity == null)
262 {
263 continue;
264 }
265 foreach (Claim item in identity.FindAll(type))
266 {
267 yield return item;
268 }
269 }
270 }
271
273 {
274 if (match == null)
275 {
276 throw new ArgumentNullException("match");
277 }
278 Claim claim = null;
279 foreach (ClaimsIdentity identity in Identities)
280 {
281 if (identity != null)
282 {
283 claim = identity.FindFirst(match);
284 if (claim != null)
285 {
286 return claim;
287 }
288 }
289 }
290 return claim;
291 }
292
293 public virtual Claim? FindFirst(string type)
294 {
295 if (type == null)
296 {
297 throw new ArgumentNullException("type");
298 }
299 Claim claim = null;
300 for (int i = 0; i < _identities.Count; i++)
301 {
302 if (_identities[i] != null)
303 {
304 claim = _identities[i].FindFirst(type);
305 if (claim != null)
306 {
307 return claim;
308 }
309 }
310 }
311 return claim;
312 }
313
314 public virtual bool HasClaim(Predicate<Claim> match)
315 {
316 if (match == null)
317 {
318 throw new ArgumentNullException("match");
319 }
320 for (int i = 0; i < _identities.Count; i++)
321 {
322 if (_identities[i] != null && _identities[i].HasClaim(match))
323 {
324 return true;
325 }
326 }
327 return false;
328 }
329
330 public virtual bool HasClaim(string type, string value)
331 {
332 if (type == null)
333 {
334 throw new ArgumentNullException("type");
335 }
336 if (value == null)
337 {
338 throw new ArgumentNullException("value");
339 }
340 for (int i = 0; i < _identities.Count; i++)
341 {
342 if (_identities[i] != null && _identities[i].HasClaim(type, value))
343 {
344 return true;
345 }
346 }
347 return false;
348 }
349
350 public virtual bool IsInRole(string role)
351 {
352 for (int i = 0; i < _identities.Count; i++)
353 {
354 if (_identities[i] != null && _identities[i].HasClaim(_identities[i].RoleClaimType, role))
355 {
356 return true;
357 }
358 }
359 return false;
360 }
361
362 public virtual void WriteTo(BinaryWriter writer)
363 {
364 WriteTo(writer, null);
365 }
366
367 protected virtual void WriteTo(BinaryWriter writer, byte[]? userData)
368 {
369 if (writer == null)
370 {
371 throw new ArgumentNullException("writer");
372 }
373 int num = 0;
375 if (_identities.Count > 0)
376 {
377 serializationMask |= SerializationMask.HasIdentities;
378 num++;
379 }
380 if (userData != null && userData.Length != 0)
381 {
382 num++;
384 }
385 writer.Write((int)serializationMask);
386 writer.Write(num);
387 if ((serializationMask & SerializationMask.HasIdentities) == SerializationMask.HasIdentities)
388 {
389 writer.Write(_identities.Count);
390 foreach (ClaimsIdentity identity in _identities)
391 {
392 identity.WriteTo(writer);
393 }
394 }
395 if ((serializationMask & SerializationMask.UserData) == SerializationMask.UserData)
396 {
397 writer.Write(userData.Length);
398 writer.Write(userData);
399 }
400 writer.Flush();
401 }
402
403 [OnSerializing]
405 {
406 if (this is ISerializable || _identities.Count <= 0)
407 {
408 return;
409 }
411 }
412
413 protected virtual void GetObjectData(SerializationInfo info, StreamingContext context)
414 {
416 }
417}
void AddRange(IEnumerable< KeyValuePair< TKey, TValue > > collection)
void Add(TKey key, TValue value)
virtual string ReadString()
virtual int ReadInt32()
virtual byte[] ReadBytes(int count)
static string PlatformNotSupported_Serialization
Definition SR.cs:18
Definition SR.cs:7
virtual ? Claim FindFirst(Predicate< Claim > match)
virtual IEnumerable< Claim > Claims
virtual void WriteTo(BinaryWriter writer)
virtual IEnumerable< Claim > FindAll(Predicate< Claim > match)
virtual bool HasClaim(string type, string value)
virtual void AddIdentity(ClaimsIdentity identity)
ClaimsPrincipal(IEnumerable< ClaimsIdentity > identities)
virtual ? Claim FindFirst(string type)
virtual IEnumerable< Claim > FindAll(Predicate< Claim > match)
static Func< IEnumerable< ClaimsIdentity >, ClaimsIdentity?> PrimaryIdentitySelector
void OnSerializingMethod(StreamingContext context)
static Func< IEnumerable< ClaimsIdentity >, ClaimsIdentity > s_identitySelector
virtual IEnumerable< ClaimsIdentity > Identities
virtual ClaimsIdentity CreateClaimsIdentity(BinaryReader reader)
static ClaimsPrincipal SelectClaimsPrincipal()
static ClaimsIdentity SelectPrimaryIdentity(IEnumerable< ClaimsIdentity > identities)
virtual bool HasClaim(Predicate< Claim > match)
virtual void GetObjectData(SerializationInfo info, StreamingContext context)
virtual ? Claim FindFirst(Predicate< Claim > match)
ClaimsPrincipal(SerializationInfo info, StreamingContext context)
static Func< ClaimsPrincipal > s_principalSelector
virtual void AddIdentities(IEnumerable< ClaimsIdentity > identities)
static Func< ClaimsPrincipal > ClaimsPrincipalSelector
virtual void WriteTo(BinaryWriter writer, byte[]? userData)
readonly List< ClaimsIdentity > _identities
virtual void WriteTo(BinaryWriter writer)
virtual IEnumerable< Claim > FindAll(string type)
static ? IPrincipal CurrentPrincipal
Definition Thread.cs:287