QBM.CompositionApi/QBM.CompositionApi.Password/PasswordItemCollector.cs
Decompiler Source FileQBM.CompositionApi.PasswordItemCollectorDecompiled Source
Interpretation
- Decompiled source file. Use method/event registrations and call-site extraction to connect back to DialogMethod, QBMEvent, and API layers.
Relations
- CallFunctionAsync: GetPwdPolicyUid at line 298
- CallFunctionAsync: GetPwdPolicyUid at line 645
Typed Edges
- No typed edges extracted for this source.
References
- No direct source references extracted.
Referenced By
- No direct source references extracted.
C# source-derived context
Generated by pattern extraction from the decompiled C# source and decompile index. This is factual source evidence, not inferred behavior.
writes entity values references DB/Dialog objects
Summary: classes PasswordItemCollector, _003C_003Ec__DisplayClass9_0; methods _003CGetPasswordItemsAsync_003Eb__5, _003CGetPasswordItemsAsync_003Eb__1, _003CGetPasswordItemsAsync_003Eb__2, MoveNext, SetStateMachine, GetPasswordItemsAsync; references Person; markers writes entity values, references DB/Dialog objects
Classes
PasswordItemCollector _003C_003Ec__DisplayClass9_0Methods
DB/Dialog object references
OIM key/entity markers
None extracted.API/entity calls
PutValue CreateInteractiveAsync CallFunctionAsync FromRegistrations / handlers
None extracted.
Complete Source
1using System;2using System.Collections;3using System.Collections.Generic;4using System.Diagnostics;5using System.Linq;6using System.Runtime.CompilerServices;7using System.Runtime.InteropServices;8using System.Security;9using System.Threading;10using System.Threading.Tasks;11using NLog;12using QBM.CompositionApi.PlugIns;13using VI.Base;14using VI.DB;15using VI.DB.Entities;16using VI.DB.Passwords;17using VI.DB.Scripting;18using VI.DB.Sync;1920namespace QBM.CompositionApi.Password;2122/// <summary>23/// Returns the list of password items defined for the current user.24/// </summary>25public class PasswordItemCollector26{27 [CompilerGenerated]28 private sealed class _003C_003Ec__DisplayClass9_029 {30 public PasswordItemCollector _003C_003E4__this;3132 public CancellationToken ct;3334 public ScriptRunner runner;3536 public string uidPerson;3738 internal System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<IPasswordItem>> _003CGetPasswordItemsAsync_003Eb__5(IPasswordItemProvider v)39 {40 //IL_003d: Unknown result type (might be due to invalid IL or missing references)41 //IL_0025: Unknown result type (might be due to invalid IL or missing references)42 if (_003C_003E4__this.UidPerson != null)43 {44 return v.GetPasswordItemsAsync(_003C_003E4__this._session, _003C_003E4__this.UidPerson, ct);45 }46 return v.GetPasswordItemsAsync(_003C_003E4__this._session, ct);47 }4849 internal bool _003CGetPasswordItemsAsync_003Eb__1(IPasswordItem i)50 {51 bool flag = (bool)runner.Eval("QER_PasswordWeb_IsAllowSet", uidPerson, i.Key, i.ColumnName);52 Logger logger = Logger;53 global::_003C_003Ey__InlineArray4<object> buffer = default(global::_003C_003Ey__InlineArray4<object>);54 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 0) = uidPerson;55 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 1) = i.Key;56 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 2) = i.ColumnName;57 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 3) = flag;58 logger.Debug("Allow set password: {0} {1} {2} => {3}", global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<global::_003C_003Ey__InlineArray4<object>, object>(in buffer, 4));59 return flag;60 }6162 internal IPasswordItem _003CGetPasswordItemsAsync_003Eb__2(IPasswordItem i)63 {64 if (!i.IsCentralPassword)65 {66 bool flag = (bool)runner.Eval("QER_PasswordWeb_IsByCentralPwd", uidPerson, i.Key, i.ColumnName);67 Logger logger = Logger;68 global::_003C_003Ey__InlineArray4<object> buffer = default(global::_003C_003Ey__InlineArray4<object>);69 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 0) = uidPerson;70 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 1) = i.Key;71 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 2) = i.ColumnName;72 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 3) = flag;73 logger.Debug("Is managed by central password: {0} {1} {2} => {3}", global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<global::_003C_003Ey__InlineArray4<object>, object>(in buffer, 4));74 if (flag)75 {76 i = new CentralPwdWrapper(i);77 }78 }79 return i;80 }81 }8283 [StructLayout((LayoutKind)3)]84 [CompilerGenerated]85 private struct _003CGetPasswordItemsAsync_003Ed__9 : IAsyncStateMachine86 {87 public int _003C_003E1__state;8889 public AsyncTaskMethodBuilder<System.Collections.Generic.IEnumerable<IPasswordItem>> _003C_003Et__builder;9091 public PasswordItemCollector _003C_003E4__this;9293 public CancellationToken ct;9495 private _003C_003Ec__DisplayClass9_0 _003C_003E8__1;9697 private ConfiguredTaskAwaiter<System.Collections.Generic.IEnumerable<IPasswordItem>[]> _003C_003Eu__1;9899 private void MoveNext()100 {101 //IL_00a6: Unknown result type (might be due to invalid IL or missing references)102 //IL_00ab: Unknown result type (might be due to invalid IL or missing references)103 //IL_00b3: Unknown result type (might be due to invalid IL or missing references)104 //IL_0037: Unknown result type (might be due to invalid IL or missing references)105 //IL_003c: Unknown result type (might be due to invalid IL or missing references)106 //IL_0068: Unknown result type (might be due to invalid IL or missing references)107 //IL_006d: Unknown result type (might be due to invalid IL or missing references)108 //IL_0071: Unknown result type (might be due to invalid IL or missing references)109 //IL_0076: Unknown result type (might be due to invalid IL or missing references)110 //IL_008b: Unknown result type (might be due to invalid IL or missing references)111 //IL_008d: Unknown result type (might be due to invalid IL or missing references)112 int num = _003C_003E1__state;113 PasswordItemCollector passwordItemCollector = _003C_003E4__this;114 System.Collections.Generic.IEnumerable<IPasswordItem> result2;115 try116 {117 ConfiguredTaskAwaiter<System.Collections.Generic.IEnumerable<IPasswordItem>[]> val;118 if (num != 0)119 {120 _003C_003E8__1 = new _003C_003Ec__DisplayClass9_0();121 _003C_003E8__1._003C_003E4__this = _003C_003E4__this;122 _003C_003E8__1.ct = ct;123 val = System.Threading.Tasks.Task.WhenAll<System.Collections.Generic.IEnumerable<IPasswordItem>>((System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<IPasswordItem>>>)(from v in passwordItemCollector._plugins.Get<IPasswordItemProvider>()124 select (_003C_003E8__1._003C_003E4__this.UidPerson != null) ? v.GetPasswordItemsAsync(_003C_003E8__1._003C_003E4__this._session, _003C_003E8__1._003C_003E4__this.UidPerson, _003C_003E8__1.ct) : v.GetPasswordItemsAsync(_003C_003E8__1._003C_003E4__this._session, _003C_003E8__1.ct))).ConfigureAwait(false).GetAwaiter();125 if (!val.IsCompleted)126 {127 num = (_003C_003E1__state = 0);128 _003C_003Eu__1 = val;129 _003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<System.Collections.Generic.IEnumerable<IPasswordItem>[]>, _003CGetPasswordItemsAsync_003Ed__9>(ref val, ref this);130 return;131 }132 }133 else134 {135 val = _003C_003Eu__1;136 _003C_003Eu__1 = default(ConfiguredTaskAwaiter<System.Collections.Generic.IEnumerable<IPasswordItem>[]>);137 num = (_003C_003E1__state = -1);138 }139 System.Collections.Generic.IEnumerable<IPasswordItem>[] result = val.GetResult();140 _003C_003E8__1.runner = new ScriptRunner(passwordItemCollector._session.Scripts().GetScriptClass(ScriptContext.Scripts), passwordItemCollector._session);141 _003C_003E8__1.uidPerson = passwordItemCollector.UidPerson ?? passwordItemCollector._session.User().Uid;142 IPasswordItem[] array = Enumerable.ToArray<IPasswordItem>(Enumerable.Select<IPasswordItem, IPasswordItem>(Enumerable.Where<IPasswordItem>(Enumerable.SelectMany<System.Collections.Generic.IEnumerable<IPasswordItem>, IPasswordItem>((System.Collections.Generic.IEnumerable<System.Collections.Generic.IEnumerable<IPasswordItem>>)result, (Func<System.Collections.Generic.IEnumerable<IPasswordItem>, System.Collections.Generic.IEnumerable<IPasswordItem>>)((System.Collections.Generic.IEnumerable<IPasswordItem> i) => i)), (Func<IPasswordItem, bool>)delegate(IPasswordItem i)143 {144 bool flag = (bool)_003C_003E8__1.runner.Eval("QER_PasswordWeb_IsAllowSet", _003C_003E8__1.uidPerson, i.Key, i.ColumnName);145 Logger logger = Logger;146 global::_003C_003Ey__InlineArray4<object> buffer = default(global::_003C_003Ey__InlineArray4<object>);147 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 0) = _003C_003E8__1.uidPerson;148 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 1) = i.Key;149 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 2) = i.ColumnName;150 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 3) = flag;151 logger.Debug("Allow set password: {0} {1} {2} => {3}", global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<global::_003C_003Ey__InlineArray4<object>, object>(in buffer, 4));152 return flag;153 }), (Func<IPasswordItem, IPasswordItem>)delegate(IPasswordItem i)154 {155 if (!i.IsCentralPassword)156 {157 bool flag = (bool)_003C_003E8__1.runner.Eval("QER_PasswordWeb_IsByCentralPwd", _003C_003E8__1.uidPerson, i.Key, i.ColumnName);158 Logger logger = Logger;159 global::_003C_003Ey__InlineArray4<object> buffer = default(global::_003C_003Ey__InlineArray4<object>);160 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 0) = _003C_003E8__1.uidPerson;161 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 1) = i.Key;162 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 2) = i.ColumnName;163 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 3) = flag;164 logger.Debug("Is managed by central password: {0} {1} {2} => {3}", global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<global::_003C_003Ey__InlineArray4<object>, object>(in buffer, 4));165 if (flag)166 {167 i = new CentralPwdWrapper(i);168 }169 }170 return i;171 }));172 if (!Enumerable.Any<IPasswordItem>((System.Collections.Generic.IEnumerable<IPasswordItem>)array, (Func<IPasswordItem, bool>)((IPasswordItem r) => r.IsManagedCentrally)))173 {174 Logger.Debug("No password is centrally managed -> not showing central password.");175 array = Enumerable.ToArray<IPasswordItem>(Enumerable.Where<IPasswordItem>((System.Collections.Generic.IEnumerable<IPasswordItem>)array, (Func<IPasswordItem, bool>)((IPasswordItem r) => !r.IsCentralPassword)));176 }177 result2 = array;178 }179 catch (System.Exception exception)180 {181 _003C_003E1__state = -2;182 _003C_003E8__1 = null;183 _003C_003Et__builder.SetException(exception);184 return;185 }186 _003C_003E1__state = -2;187 _003C_003E8__1 = null;188 _003C_003Et__builder.SetResult(result2);189 }190191 [DebuggerHidden]192 private void SetStateMachine(IAsyncStateMachine stateMachine)193 {194 _003C_003Et__builder.SetStateMachine(stateMachine);195 }196 }197198 [StructLayout((LayoutKind)3)]199 [CompilerGenerated]200 private struct _003CGetPolicyAsync_003Ed__11 : IAsyncStateMachine201 {202 public int _003C_003E1__state;203204 public AsyncTaskMethodBuilder<PasswordPolicy> _003C_003Et__builder;205206 public ISession session;207208 public IEntity entity;209210 public CancellationToken ct;211212 public string columnName;213214 private IPasswordManager _003CpwdManager_003E5__2;215216 private ConfiguredTaskAwaiter<IEntity> _003C_003Eu__1;217218 private ConfiguredValueTaskAwaiter<object> _003C_003Eu__2;219220 private ConfiguredTaskAwaiter<PasswordPolicy> _003C_003Eu__3;221222 private void MoveNext()223 {224 //IL_0090: Unknown result type (might be due to invalid IL or missing references)225 //IL_0095: Unknown result type (might be due to invalid IL or missing references)226 //IL_009d: Unknown result type (might be due to invalid IL or missing references)227 //IL_011b: Unknown result type (might be due to invalid IL or missing references)228 //IL_0120: Unknown result type (might be due to invalid IL or missing references)229 //IL_0128: Unknown result type (might be due to invalid IL or missing references)230 //IL_019e: Unknown result type (might be due to invalid IL or missing references)231 //IL_01a3: Unknown result type (might be due to invalid IL or missing references)232 //IL_01ab: Unknown result type (might be due to invalid IL or missing references)233 //IL_0158: Unknown result type (might be due to invalid IL or missing references)234 //IL_0163: Unknown result type (might be due to invalid IL or missing references)235 //IL_0168: Unknown result type (might be due to invalid IL or missing references)236 //IL_016c: Unknown result type (might be due to invalid IL or missing references)237 //IL_0171: Unknown result type (might be due to invalid IL or missing references)238 //IL_00ce: Unknown result type (might be due to invalid IL or missing references)239 //IL_00dd: Unknown result type (might be due to invalid IL or missing references)240 //IL_00e2: Unknown result type (might be due to invalid IL or missing references)241 //IL_00e6: Unknown result type (might be due to invalid IL or missing references)242 //IL_00eb: Unknown result type (might be due to invalid IL or missing references)243 //IL_0047: Unknown result type (might be due to invalid IL or missing references)244 //IL_0052: Unknown result type (might be due to invalid IL or missing references)245 //IL_0057: Unknown result type (might be due to invalid IL or missing references)246 //IL_005b: Unknown result type (might be due to invalid IL or missing references)247 //IL_0060: Unknown result type (might be due to invalid IL or missing references)248 //IL_0186: Unknown result type (might be due to invalid IL or missing references)249 //IL_0188: Unknown result type (might be due to invalid IL or missing references)250 //IL_0100: Unknown result type (might be due to invalid IL or missing references)251 //IL_0102: Unknown result type (might be due to invalid IL or missing references)252 //IL_0075: Unknown result type (might be due to invalid IL or missing references)253 //IL_0077: Unknown result type (might be due to invalid IL or missing references)254 int num = _003C_003E1__state;255 PasswordPolicy result2;256 try257 {258 ConfiguredTaskAwaiter<IEntity> val3;259 ConfiguredValueTaskAwaiter<object> val2;260 ConfiguredTaskAwaiter<PasswordPolicy> val;261 string uidPasswordPolicy;262 IEntity result;263 switch (num)264 {265 default:266 _003CpwdManager_003E5__2 = session.Resolve<IPasswordManager>();267 if (!entity.IsInteractive)268 {269 val3 = entity.CreateInteractiveAsync(session, ct).ConfigureAwait(false).GetAwaiter();270 if (!val3.IsCompleted)271 {272 num = (_003C_003E1__state = 0);273 _003C_003Eu__1 = val3;274 _003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<IEntity>, _003CGetPolicyAsync_003Ed__11>(ref val3, ref this);275 return;276 }277 goto IL_00ac;278 }279 goto IL_00bb;280 case 0:281 val3 = _003C_003Eu__1;282 _003C_003Eu__1 = default(ConfiguredTaskAwaiter<IEntity>);283 num = (_003C_003E1__state = -1);284 goto IL_00ac;285 case 1:286 val2 = _003C_003Eu__2;287 _003C_003Eu__2 = default(ConfiguredValueTaskAwaiter<object>);288 num = (_003C_003E1__state = -1);289 goto IL_0137;290 case 2:291 {292 val = _003C_003Eu__3;293 _003C_003Eu__3 = default(ConfiguredTaskAwaiter<PasswordPolicy>);294 num = (_003C_003E1__state = -1);295 break;296 }297 IL_00bb:298 val2 = entity.CallFunctionAsync("GetPwdPolicyUid", columnName, p2: true, ct).ConfigureAwait(false).GetAwaiter();299 if (!val2.IsCompleted)300 {301 num = (_003C_003E1__state = 1);302 _003C_003Eu__2 = val2;303 _003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredValueTaskAwaiter<object>, _003CGetPolicyAsync_003Ed__11>(ref val2, ref this);304 return;305 }306 goto IL_0137;307 IL_0137:308 uidPasswordPolicy = (string)val2.GetResult();309 val = _003CpwdManager_003E5__2.GetPolicyAsync(uidPasswordPolicy, entity, columnName, ct).ConfigureAwait(false).GetAwaiter();310 if (!val.IsCompleted)311 {312 num = (_003C_003E1__state = 2);313 _003C_003Eu__3 = val;314 _003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<PasswordPolicy>, _003CGetPolicyAsync_003Ed__11>(ref val, ref this);315 return;316 }317 break;318 IL_00ac:319 result = val3.GetResult();320 entity = result;321 goto IL_00bb;322 }323 result2 = val.GetResult();324 }325 catch (System.Exception exception)326 {327 _003C_003E1__state = -2;328 _003CpwdManager_003E5__2 = null;329 _003C_003Et__builder.SetException(exception);330 return;331 }332 _003C_003E1__state = -2;333 _003CpwdManager_003E5__2 = null;334 _003C_003Et__builder.SetResult(result2);335 }336337 [DebuggerHidden]338 private void SetStateMachine(IAsyncStateMachine stateMachine)339 {340 _003C_003Et__builder.SetStateMachine(stateMachine);341 }342 }343344 [StructLayout((LayoutKind)3)]345 [CompilerGenerated]346 private struct _003CSetPasswordsAsync_003Ed__10 : IAsyncStateMachine347 {348 public int _003C_003E1__state;349350 public AsyncTaskMethodBuilder _003C_003Et__builder;351352 public PasswordItemCollector _003C_003E4__this;353354 public System.Collections.Generic.IEnumerable<IPasswordItem> passwordItems;355356 public SecureString newPassword;357358 public CancellationToken ct;359360 private IUnitOfWork _003Cu_003E5__2;361362 private System.Collections.Generic.IEnumerator<IPasswordItem> _003C_003E7__wrap2;363364 private IPasswordItem _003Cp_003E5__4;365366 private string _003Cinsecure_003E5__5;367368 private ConfiguredTaskAwaiter<IEntity> _003C_003Eu__1;369370 private ConfiguredTaskAwaiter _003C_003Eu__2;371372 private void MoveNext()373 {374 //IL_0225: Unknown result type (might be due to invalid IL or missing references)375 //IL_022a: Unknown result type (might be due to invalid IL or missing references)376 //IL_0232: Unknown result type (might be due to invalid IL or missing references)377 //IL_00e8: Unknown result type (might be due to invalid IL or missing references)378 //IL_00ed: Unknown result type (might be due to invalid IL or missing references)379 //IL_00f5: Unknown result type (might be due to invalid IL or missing references)380 //IL_012d: Unknown result type (might be due to invalid IL or missing references)381 //IL_0138: Unknown result type (might be due to invalid IL or missing references)382 //IL_013d: Unknown result type (might be due to invalid IL or missing references)383 //IL_0141: Unknown result type (might be due to invalid IL or missing references)384 //IL_0146: Unknown result type (might be due to invalid IL or missing references)385 //IL_0176: Unknown result type (might be due to invalid IL or missing references)386 //IL_017b: Unknown result type (might be due to invalid IL or missing references)387 //IL_0183: Unknown result type (might be due to invalid IL or missing references)388 //IL_015b: Unknown result type (might be due to invalid IL or missing references)389 //IL_015d: Unknown result type (might be due to invalid IL or missing references)390 //IL_009f: Unknown result type (might be due to invalid IL or missing references)391 //IL_00aa: Unknown result type (might be due to invalid IL or missing references)392 //IL_00af: Unknown result type (might be due to invalid IL or missing references)393 //IL_00b3: Unknown result type (might be due to invalid IL or missing references)394 //IL_00b8: Unknown result type (might be due to invalid IL or missing references)395 //IL_00cd: Unknown result type (might be due to invalid IL or missing references)396 //IL_00cf: Unknown result type (might be due to invalid IL or missing references)397 //IL_01df: Unknown result type (might be due to invalid IL or missing references)398 //IL_01ea: Unknown result type (might be due to invalid IL or missing references)399 //IL_01ef: Unknown result type (might be due to invalid IL or missing references)400 //IL_01f3: Unknown result type (might be due to invalid IL or missing references)401 //IL_01f8: Unknown result type (might be due to invalid IL or missing references)402 //IL_020d: Unknown result type (might be due to invalid IL or missing references)403 //IL_020f: Unknown result type (might be due to invalid IL or missing references)404 int num = _003C_003E1__state;405 PasswordItemCollector passwordItemCollector = _003C_003E4__this;406 try407 {408 if ((uint)num > 2u)409 {410 _003Cu_003E5__2 = passwordItemCollector._session.StartUnitOfWork();411 }412 try413 {414 ConfiguredTaskAwaiter val;415 if ((uint)num > 1u)416 {417 if (num == 2)418 {419 val = _003C_003Eu__2;420 _003C_003Eu__2 = default(ConfiguredTaskAwaiter);421 num = (_003C_003E1__state = -1);422 goto IL_0241;423 }424 _003C_003E7__wrap2 = passwordItems.GetEnumerator();425 }426 ConfiguredTaskAwaitable val3;427 try428 {429 if (num != 0)430 {431 if (num != 1)432 {433 goto IL_01a7;434 }435 val = _003C_003Eu__2;436 _003C_003Eu__2 = default(ConfiguredTaskAwaiter);437 num = (_003C_003E1__state = -1);438 goto IL_0192;439 }440 ConfiguredTaskAwaiter<IEntity> val2 = _003C_003Eu__1;441 _003C_003Eu__1 = default(ConfiguredTaskAwaiter<IEntity>);442 num = (_003C_003E1__state = -1);443 goto IL_0104;444 IL_0192:445 ((ConfiguredTaskAwaiter)(ref val)).GetResult();446 _003Cinsecure_003E5__5 = null;447 _003Cp_003E5__4 = null;448 goto IL_01a7;449 IL_01a7:450 if (((System.Collections.IEnumerator)_003C_003E7__wrap2).MoveNext())451 {452 _003Cp_003E5__4 = _003C_003E7__wrap2.Current;453 _003Cinsecure_003E5__5 = newPassword.ToInsecure();454 Query query = Query.From(new DbObjectKey(_003Cp_003E5__4.Key)).SelectNonLobs();455 val2 = passwordItemCollector._session.Source().GetAsync(query, EntityLoadType.DelayedLogic, ct).ConfigureAwait(false)456 .GetAwaiter();457 if (!val2.IsCompleted)458 {459 num = (_003C_003E1__state = 0);460 _003C_003Eu__1 = val2;461 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<IEntity>, _003CSetPasswordsAsync_003Ed__10>(ref val2, ref this);462 return;463 }464 goto IL_0104;465 }466 goto end_IL_0042;467 IL_0104:468 IEntity result = val2.GetResult();469 result.PutValue(_003Cp_003E5__4.ColumnName, _003Cinsecure_003E5__5);470 val3 = _003Cu_003E5__2.PutAsync(result, null, ct).ConfigureAwait(false);471 val = ((ConfiguredTaskAwaitable)(ref val3)).GetAwaiter();472 if (!((ConfiguredTaskAwaiter)(ref val)).IsCompleted)473 {474 num = (_003C_003E1__state = 1);475 _003C_003Eu__2 = val;476 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter, _003CSetPasswordsAsync_003Ed__10>(ref val, ref this);477 return;478 }479 goto IL_0192;480 end_IL_0042:;481 }482 finally483 {484 if (num < 0 && _003C_003E7__wrap2 != null)485 {486 ((System.IDisposable)_003C_003E7__wrap2).Dispose();487 }488 }489 _003C_003E7__wrap2 = null;490 val3 = _003Cu_003E5__2.CommitAsync(ct).ConfigureAwait(false);491 val = ((ConfiguredTaskAwaitable)(ref val3)).GetAwaiter();492 if (!((ConfiguredTaskAwaiter)(ref val)).IsCompleted)493 {494 num = (_003C_003E1__state = 2);495 _003C_003Eu__2 = val;496 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter, _003CSetPasswordsAsync_003Ed__10>(ref val, ref this);497 return;498 }499 goto IL_0241;500 IL_0241:501 ((ConfiguredTaskAwaiter)(ref val)).GetResult();502 }503 finally504 {505 if (num < 0 && _003Cu_003E5__2 != null)506 {507 ((System.IDisposable)_003Cu_003E5__2).Dispose();508 }509 }510 _003Cu_003E5__2 = null;511 }512 catch (System.Exception exception)513 {514 _003C_003E1__state = -2;515 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetException(exception);516 return;517 }518 _003C_003E1__state = -2;519 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetResult();520 }521522 [DebuggerHidden]523 private void SetStateMachine(IAsyncStateMachine stateMachine)524 {525 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetStateMachine(stateMachine);526 }527 }528529 private readonly IPluginService _plugins;530531 private readonly ISession _session;532533 private static readonly Logger Logger = LogManager.GetLogger("WebLog");534535 [field: CompilerGenerated]536 public string UidPerson537 {538 [CompilerGenerated]539 get;540 [CompilerGenerated]541 set;542 }543544 public PasswordItemCollector(ISession session)545 : this(session, PluginConfiguration.Default)546 {547 }548549 public PasswordItemCollector(ISession session, IPluginService plugins)550 {551 _session = session;552 _plugins = plugins;553 }554555 /// <summary>556 /// Returns the list of password items defined for the current user.557 /// </summary>558 /// <remarks><para>To determine the password items, the <c>IPasswordItemProvider</c> interface is used.</para>559 /// <para>The script <c>QER_PasswordWeb_IsAllowSet</c> is called to determine whether a specific password should560 /// be exposed.</para>561 /// <para>The script <c>QER_PasswordWeb_IsByCentralPwd</c> is called to determine whether a specific password is562 /// managed by the central password.</para></remarks>563 [AsyncStateMachine(typeof(_003CGetPasswordItemsAsync_003Ed__9))]564 public async System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<IPasswordItem>> GetPasswordItemsAsync(CancellationToken ct = default(CancellationToken))565 {566 //IL_0002: Unknown result type (might be due to invalid IL or missing references)567 //IL_0007: Unknown result type (might be due to invalid IL or missing references)568 //IL_0016: Unknown result type (might be due to invalid IL or missing references)569 //IL_0017: Unknown result type (might be due to invalid IL or missing references)570 System.Collections.Generic.IEnumerable<IPasswordItem>[] obj = await System.Threading.Tasks.Task.WhenAll<System.Collections.Generic.IEnumerable<IPasswordItem>>((System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<IPasswordItem>>>)(from v in _plugins.Get<IPasswordItemProvider>()571 select (UidPerson != null) ? v.GetPasswordItemsAsync(_session, UidPerson, ct) : v.GetPasswordItemsAsync(_session, ct))).ConfigureAwait(false);572 ScriptRunner runner = new ScriptRunner(_session.Scripts().GetScriptClass(ScriptContext.Scripts), _session);573 string uidPerson = UidPerson ?? _session.User().Uid;574 IPasswordItem[] array = Enumerable.ToArray<IPasswordItem>(Enumerable.Select<IPasswordItem, IPasswordItem>(Enumerable.Where<IPasswordItem>(Enumerable.SelectMany<System.Collections.Generic.IEnumerable<IPasswordItem>, IPasswordItem>((System.Collections.Generic.IEnumerable<System.Collections.Generic.IEnumerable<IPasswordItem>>)obj, (Func<System.Collections.Generic.IEnumerable<IPasswordItem>, System.Collections.Generic.IEnumerable<IPasswordItem>>)((System.Collections.Generic.IEnumerable<IPasswordItem> i) => i)), (Func<IPasswordItem, bool>)delegate(IPasswordItem i)575 {576 bool flag = (bool)runner.Eval("QER_PasswordWeb_IsAllowSet", uidPerson, i.Key, i.ColumnName);577 Logger logger = Logger;578 global::_003C_003Ey__InlineArray4<object> buffer = default(global::_003C_003Ey__InlineArray4<object>);579 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 0) = uidPerson;580 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 1) = i.Key;581 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 2) = i.ColumnName;582 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 3) = flag;583 logger.Debug("Allow set password: {0} {1} {2} => {3}", global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<global::_003C_003Ey__InlineArray4<object>, object>(in buffer, 4));584 return flag;585 }), (Func<IPasswordItem, IPasswordItem>)delegate(IPasswordItem i)586 {587 if (!i.IsCentralPassword)588 {589 bool flag = (bool)runner.Eval("QER_PasswordWeb_IsByCentralPwd", uidPerson, i.Key, i.ColumnName);590 Logger logger = Logger;591 global::_003C_003Ey__InlineArray4<object> buffer = default(global::_003C_003Ey__InlineArray4<object>);592 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 0) = uidPerson;593 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 1) = i.Key;594 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 2) = i.ColumnName;595 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 3) = flag;596 logger.Debug("Is managed by central password: {0} {1} {2} => {3}", global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<global::_003C_003Ey__InlineArray4<object>, object>(in buffer, 4));597 if (flag)598 {599 i = new CentralPwdWrapper(i);600 }601 }602 return i;603 }));604 if (!Enumerable.Any<IPasswordItem>((System.Collections.Generic.IEnumerable<IPasswordItem>)array, (Func<IPasswordItem, bool>)((IPasswordItem r) => r.IsManagedCentrally)))605 {606 Logger.Debug("No password is centrally managed -> not showing central password.");607 array = Enumerable.ToArray<IPasswordItem>(Enumerable.Where<IPasswordItem>((System.Collections.Generic.IEnumerable<IPasswordItem>)array, (Func<IPasswordItem, bool>)((IPasswordItem r) => !r.IsCentralPassword)));608 }609 return array;610 }611612 /// <summary>613 /// Sets a new password for the list of target items, and saves the changes to the database.614 /// </summary>615 [AsyncStateMachine(typeof(_003CSetPasswordsAsync_003Ed__10))]616 public System.Threading.Tasks.Task SetPasswordsAsync(System.Collections.Generic.IEnumerable<IPasswordItem> passwordItems, SecureString newPassword, CancellationToken ct = default(CancellationToken))617 {618 //IL_0002: Unknown result type (might be due to invalid IL or missing references)619 //IL_0007: Unknown result type (might be due to invalid IL or missing references)620 //IL_0026: Unknown result type (might be due to invalid IL or missing references)621 //IL_0027: Unknown result type (might be due to invalid IL or missing references)622 _003CSetPasswordsAsync_003Ed__10 _003CSetPasswordsAsync_003Ed__ = default(_003CSetPasswordsAsync_003Ed__10);623 _003CSetPasswordsAsync_003Ed__._003C_003Et__builder = AsyncTaskMethodBuilder.Create();624 _003CSetPasswordsAsync_003Ed__._003C_003E4__this = this;625 _003CSetPasswordsAsync_003Ed__.passwordItems = passwordItems;626 _003CSetPasswordsAsync_003Ed__.newPassword = newPassword;627 _003CSetPasswordsAsync_003Ed__.ct = ct;628 _003CSetPasswordsAsync_003Ed__._003C_003E1__state = -1;629 ((AsyncTaskMethodBuilder)(ref _003CSetPasswordsAsync_003Ed__._003C_003Et__builder)).Start<_003CSetPasswordsAsync_003Ed__10>(ref _003CSetPasswordsAsync_003Ed__);630 return ((AsyncTaskMethodBuilder)(ref _003CSetPasswordsAsync_003Ed__._003C_003Et__builder)).Task;631 }632633 [AsyncStateMachine(typeof(_003CGetPolicyAsync_003Ed__11))]634 public static async System.Threading.Tasks.Task<PasswordPolicy> GetPolicyAsync(ISession session, IEntity entity, string columnName, CancellationToken ct = default(CancellationToken))635 {636 //IL_0002: Unknown result type (might be due to invalid IL or missing references)637 //IL_0007: Unknown result type (might be due to invalid IL or missing references)638 //IL_0026: Unknown result type (might be due to invalid IL or missing references)639 //IL_0027: Unknown result type (might be due to invalid IL or missing references)640 IPasswordManager pwdManager = session.Resolve<IPasswordManager>();641 if (!entity.IsInteractive)642 {643 entity = await entity.CreateInteractiveAsync(session, ct).ConfigureAwait(false);644 }645 string uidPasswordPolicy = (string)(await entity.CallFunctionAsync("GetPwdPolicyUid", columnName, p2: true, ct).ConfigureAwait(false));646 return await pwdManager.GetPolicyAsync(uidPasswordPolicy, entity, columnName, ct).ConfigureAwait(false);647 }648}649