QER.Customizer/QER.Customizer/QERPasswordQueryAndAnswer.cs
Decompiler Source FileQER.Customizer.QERPasswordQueryAndAnswerDecompiled Source
Interpretation
- Decompiled source file. Use method/event registrations and call-site extraction to connect back to DialogMethod, QBMEvent, and API layers.
Relations
- Method registration: Unlock at line 439
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.
reads entity values references DB/Dialog objects
Summary: classes QERPasswordQueryAndAnswer, _003C_003Ec__DisplayClass3_0; methods _003C_CheckUniquePasswordAnswer_003Eb__0, _003C_CheckUniquePasswordAnswer_003Eb__1, MoveNext, SetStateMachine, OnSavingAsync, _CheckUniquePasswordAnswer; references ESet, Person, QERPasswordQueryAndAnswer; markers reads entity values, references DB/Dialog objects
Classes
QERPasswordQueryAndAnswer _003C_003Ec__DisplayClass3_0Methods
DB/Dialog object references
OIM key/entity markers
UID_Person UID_QERPasswordQueryAndAnswerAPI/entity calls
GetValue IsDeleted User PutValueAsync Config From SourceRegistrations / 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 VI.Base;12using VI.Base.Encryption;13using VI.DB;14using VI.DB.Entities;1516namespace QER.Customizer;1718public class QERPasswordQueryAndAnswer : StateBasedEntityLogic19{20 [CompilerGenerated]21 private sealed class _003C_003Ec__DisplayClass3_022 {23 public string uidPerson;2425 public string uidQERPasswordQueryAndAnswer;2627 internal ExpressionClause _003C_CheckUniquePasswordAnswer_003Eb__0(IExpressionContext c)28 {29 return c.Column("UID_Person") == uidPerson && c.Column("IsLocked") == false;30 }3132 internal ExpressionClause _003C_CheckUniquePasswordAnswer_003Eb__1(IExpressionContext c)33 {34 return c.Column("UID_QERPasswordQueryAndAnswer") != uidQERPasswordQueryAndAnswer;35 }36 }3738 [StructLayout((LayoutKind)3)]39 [CompilerGenerated]40 private struct _003COnSavingAsync_003Ed__2 : IAsyncStateMachine41 {42 public int _003C_003E1__state;4344 public AsyncTaskMethodBuilder<Diff> _003C_003Et__builder;4546 public IEntity entity;4748 public QERPasswordQueryAndAnswer _003C_003E4__this;4950 public LogicReadWriteParameters parameters;5152 public CancellationToken cancellationToken;5354 private ConfiguredTaskAwaiter _003C_003Eu__1;5556 private ConfiguredTaskAwaiter<Diff> _003C_003Eu__2;5758 private void MoveNext()59 {60 //IL_0081: Unknown result type (might be due to invalid IL or missing references)61 //IL_0086: Unknown result type (might be due to invalid IL or missing references)62 //IL_008e: Unknown result type (might be due to invalid IL or missing references)63 //IL_00fb: Unknown result type (might be due to invalid IL or missing references)64 //IL_0100: Unknown result type (might be due to invalid IL or missing references)65 //IL_0108: Unknown result type (might be due to invalid IL or missing references)66 //IL_00b2: Unknown result type (might be due to invalid IL or missing references)67 //IL_00bd: Unknown result type (might be due to invalid IL or missing references)68 //IL_00c2: Unknown result type (might be due to invalid IL or missing references)69 //IL_00c6: Unknown result type (might be due to invalid IL or missing references)70 //IL_00cb: Unknown result type (might be due to invalid IL or missing references)71 //IL_0038: Unknown result type (might be due to invalid IL or missing references)72 //IL_0043: Unknown result type (might be due to invalid IL or missing references)73 //IL_0048: Unknown result type (might be due to invalid IL or missing references)74 //IL_004c: Unknown result type (might be due to invalid IL or missing references)75 //IL_0051: Unknown result type (might be due to invalid IL or missing references)76 //IL_00e0: Unknown result type (might be due to invalid IL or missing references)77 //IL_00e2: Unknown result type (might be due to invalid IL or missing references)78 //IL_0066: Unknown result type (might be due to invalid IL or missing references)79 //IL_0068: Unknown result type (might be due to invalid IL or missing references)80 int num = _003C_003E1__state;81 QERPasswordQueryAndAnswer qERPasswordQueryAndAnswer = _003C_003E4__this;82 Diff result;83 try84 {85 ConfiguredTaskAwaiter<Diff> val;86 ConfiguredTaskAwaiter val3;87 if (num != 0)88 {89 if (num == 1)90 {91 val = _003C_003Eu__2;92 _003C_003Eu__2 = default(ConfiguredTaskAwaiter<Diff>);93 num = (_003C_003E1__state = -1);94 goto IL_0117;95 }96 if (entity.IsDeleted())97 {98 goto IL_00a4;99 }100 ConfiguredTaskAwaitable val2 = qERPasswordQueryAndAnswer._CheckUniquePasswordAnswer(parameters.Session, entity, cancellationToken).ConfigureAwait(false);101 val3 = ((ConfiguredTaskAwaitable)(ref val2)).GetAwaiter();102 if (!((ConfiguredTaskAwaiter)(ref val3)).IsCompleted)103 {104 num = (_003C_003E1__state = 0);105 _003C_003Eu__1 = val3;106 _003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter, _003COnSavingAsync_003Ed__2>(ref val3, ref this);107 return;108 }109 }110 else111 {112 val3 = _003C_003Eu__1;113 _003C_003Eu__1 = default(ConfiguredTaskAwaiter);114 num = (_003C_003E1__state = -1);115 }116 ((ConfiguredTaskAwaiter)(ref val3)).GetResult();117 goto IL_00a4;118 IL_0117:119 Diff diff = val.GetResult();120 if (entity.Columns["PasswordAnswer"].IsDifferent)121 {122 diff = new Diff(diff.Data, Enumerable.Concat<DiffOperation>((System.Collections.Generic.IEnumerable<DiffOperation>)diff, (System.Collections.Generic.IEnumerable<DiffOperation>)new global::_003C_003Ez__ReadOnlyArray<DiffOperation>(new DiffOperation[2]123 {124 new DiffOperation125 {126 Type = DiffOperationType.Value,127 Name = "IsLocked",128 Value = false129 },130 new DiffOperation131 {132 Type = DiffOperationType.Value,133 Name = "BadAnswerAttempts",134 Value = 0135 }136 })));137 }138 result = diff;139 goto end_IL_000e;140 IL_00a4:141 val = ((StateBasedEntityLogic)qERPasswordQueryAndAnswer).OnSavingAsync(entity, parameters, cancellationToken).ConfigureAwait(false).GetAwaiter();142 if (!val.IsCompleted)143 {144 num = (_003C_003E1__state = 1);145 _003C_003Eu__2 = val;146 _003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<Diff>, _003COnSavingAsync_003Ed__2>(ref val, ref this);147 return;148 }149 goto IL_0117;150 end_IL_000e:;151 }152 catch (System.Exception exception)153 {154 _003C_003E1__state = -2;155 _003C_003Et__builder.SetException(exception);156 return;157 }158 _003C_003E1__state = -2;159 _003C_003Et__builder.SetResult(result);160 }161162 [DebuggerHidden]163 private void SetStateMachine(IAsyncStateMachine stateMachine)164 {165 _003C_003Et__builder.SetStateMachine(stateMachine);166 }167 }168169 [StructLayout((LayoutKind)3)]170 [CompilerGenerated]171 private struct _003CUnlock_003Ed__7 : IAsyncStateMachine172 {173 public int _003C_003E1__state;174175 public AsyncTaskMethodBuilder _003C_003Et__builder;176177 public IEntity entity;178179 public ISession session;180181 public CancellationToken ct;182183 private ConfiguredValueTaskAwaiter<ApplyResult> _003C_003Eu__1;184185 private void MoveNext()186 {187 //IL_00be: Unknown result type (might be due to invalid IL or missing references)188 //IL_00c3: Unknown result type (might be due to invalid IL or missing references)189 //IL_00ca: Unknown result type (might be due to invalid IL or missing references)190 //IL_00f3: Unknown result type (might be due to invalid IL or missing references)191 //IL_0101: Unknown result type (might be due to invalid IL or missing references)192 //IL_0106: Unknown result type (might be due to invalid IL or missing references)193 //IL_0109: Unknown result type (might be due to invalid IL or missing references)194 //IL_010e: Unknown result type (might be due to invalid IL or missing references)195 //IL_0139: Unknown result type (might be due to invalid IL or missing references)196 //IL_013e: Unknown result type (might be due to invalid IL or missing references)197 //IL_0145: Unknown result type (might be due to invalid IL or missing references)198 //IL_0122: Unknown result type (might be due to invalid IL or missing references)199 //IL_0123: Unknown result type (might be due to invalid IL or missing references)200 //IL_0075: Unknown result type (might be due to invalid IL or missing references)201 //IL_0083: Unknown result type (might be due to invalid IL or missing references)202 //IL_0088: Unknown result type (might be due to invalid IL or missing references)203 //IL_008b: Unknown result type (might be due to invalid IL or missing references)204 //IL_0090: Unknown result type (might be due to invalid IL or missing references)205 //IL_00a4: Unknown result type (might be due to invalid IL or missing references)206 //IL_00a5: Unknown result type (might be due to invalid IL or missing references)207 int num = _003C_003E1__state;208 try209 {210 ConfiguredValueTaskAwaiter<ApplyResult> val;211 if (num != 0)212 {213 if (num == 1)214 {215 val = _003C_003Eu__1;216 _003C_003Eu__1 = default(ConfiguredValueTaskAwaiter<ApplyResult>);217 num = (_003C_003E1__state = -1);218 goto IL_0154;219 }220 if (!string.Equals(entity.Columns["UID_Person"].GetValue<string>(), session.User().Uid) && !session.User().IsAdministrativeAccount)221 {222 throw new ViException(2133433, ExceptionRelevance.EndUser);223 }224 val = entity.PutValueAsync("IsLocked", false, ct).ConfigureAwait(false).GetAwaiter();225 if (!val.IsCompleted)226 {227 num = (_003C_003E1__state = 0);228 _003C_003Eu__1 = val;229 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredValueTaskAwaiter<ApplyResult>, _003CUnlock_003Ed__7>(ref val, ref this);230 return;231 }232 }233 else234 {235 val = _003C_003Eu__1;236 _003C_003Eu__1 = default(ConfiguredValueTaskAwaiter<ApplyResult>);237 num = (_003C_003E1__state = -1);238 }239 val.GetResult();240 val = entity.PutValueAsync("BadAnswerAttempts", 0, ct).ConfigureAwait(false).GetAwaiter();241 if (!val.IsCompleted)242 {243 num = (_003C_003E1__state = 1);244 _003C_003Eu__1 = val;245 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredValueTaskAwaiter<ApplyResult>, _003CUnlock_003Ed__7>(ref val, ref this);246 return;247 }248 goto IL_0154;249 IL_0154:250 val.GetResult();251 }252 catch (System.Exception exception)253 {254 _003C_003E1__state = -2;255 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetException(exception);256 return;257 }258 _003C_003E1__state = -2;259 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetResult();260 }261262 [DebuggerHidden]263 private void SetStateMachine(IAsyncStateMachine stateMachine)264 {265 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetStateMachine(stateMachine);266 }267 }268269 [StructLayout((LayoutKind)3)]270 [CompilerGenerated]271 private struct _003C_CheckUniquePasswordAnswer_003Ed__3 : IAsyncStateMachine272 {273 public int _003C_003E1__state;274275 public AsyncTaskMethodBuilder _003C_003Et__builder;276277 public IEntity entity;278279 public QERPasswordQueryAndAnswer _003C_003E4__this;280281 public ISession session;282283 public CancellationToken ct;284285 private _003C_003Ec__DisplayClass3_0 _003C_003E8__1;286287 private ConfiguredTaskAwaiter<string> _003C_003Eu__1;288289 private ConfiguredTaskAwaiter<IEntityCollection> _003C_003Eu__2;290291 private void MoveNext()292 {293 //IL_00bd: Unknown result type (might be due to invalid IL or missing references)294 //IL_00c2: Unknown result type (might be due to invalid IL or missing references)295 //IL_00ca: Unknown result type (might be due to invalid IL or missing references)296 //IL_01fe: Unknown result type (might be due to invalid IL or missing references)297 //IL_0203: Unknown result type (might be due to invalid IL or missing references)298 //IL_020b: Unknown result type (might be due to invalid IL or missing references)299 //IL_0074: Unknown result type (might be due to invalid IL or missing references)300 //IL_007f: Unknown result type (might be due to invalid IL or missing references)301 //IL_0084: Unknown result type (might be due to invalid IL or missing references)302 //IL_0088: Unknown result type (might be due to invalid IL or missing references)303 //IL_008d: Unknown result type (might be due to invalid IL or missing references)304 //IL_00a2: Unknown result type (might be due to invalid IL or missing references)305 //IL_00a4: Unknown result type (might be due to invalid IL or missing references)306 //IL_01b5: Unknown result type (might be due to invalid IL or missing references)307 //IL_01c0: Unknown result type (might be due to invalid IL or missing references)308 //IL_01c5: Unknown result type (might be due to invalid IL or missing references)309 //IL_01c9: Unknown result type (might be due to invalid IL or missing references)310 //IL_01ce: Unknown result type (might be due to invalid IL or missing references)311 //IL_01e3: Unknown result type (might be due to invalid IL or missing references)312 //IL_01e5: Unknown result type (might be due to invalid IL or missing references)313 int num = _003C_003E1__state;314 QERPasswordQueryAndAnswer qERPasswordQueryAndAnswer = _003C_003E4__this;315 try316 {317 ConfiguredTaskAwaiter<string> val;318 if (num == 0)319 {320 val = _003C_003Eu__1;321 _003C_003Eu__1 = default(ConfiguredTaskAwaiter<string>);322 num = (_003C_003E1__state = -1);323 goto IL_00d9;324 }325 ConfiguredTaskAwaiter<IEntityCollection> val2;326 if (num == 1)327 {328 val2 = _003C_003Eu__2;329 _003C_003Eu__2 = default(ConfiguredTaskAwaiter<IEntityCollection>);330 num = (_003C_003E1__state = -1);331 goto IL_021a;332 }333 _003C_003E8__1 = new _003C_003Ec__DisplayClass3_0();334 if (entity.Columns.ChangedAny("UID_Person", "PasswordAnswer", "PasswordQuery") && qERPasswordQueryAndAnswer._passwordAnswer != null)335 {336 val = session.Config().GetConfigParmAsync("QER\\Person\\PasswordResetAuthenticator\\QueryAnswerDefinitions", ct).ConfigureAwait(false)337 .GetAwaiter();338 if (!val.IsCompleted)339 {340 num = (_003C_003E1__state = 0);341 _003C_003Eu__1 = val;342 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<string>, _003C_CheckUniquePasswordAnswer_003Ed__3>(ref val, ref this);343 return;344 }345 goto IL_00d9;346 }347 goto end_IL_000e;348 IL_00d9:349 int num2 = default(int);350 if (int.TryParse(val.GetResult(), ref num2) && num2 >= 2)351 {352 _003C_003E8__1.uidPerson = entity.Columns["UID_Person"].GetValue<string>();353 if (!string.IsNullOrEmpty(_003C_003E8__1.uidPerson))354 {355 ISelect obj = from c in Query.From("QERPasswordQueryAndAnswer")356 where c.Column("UID_Person") == _003C_003E8__1.uidPerson && c.Column("IsLocked") == false357 select c;358 _003C_003E8__1.uidQERPasswordQueryAndAnswer = entity.Columns["UID_QERPasswordQueryAndAnswer"].GetValue<string>();359 if (entity.IsLoaded)360 {361 obj = obj.Where((IExpressionContext c) => c.Column("UID_QERPasswordQueryAndAnswer") != _003C_003E8__1.uidQERPasswordQueryAndAnswer);362 }363 Query query = obj.SelectAll();364 val2 = session.Source().GetCollectionAsync(query, EntityCollectionLoadType.Default, ct).ConfigureAwait(false)365 .GetAwaiter();366 if (!val2.IsCompleted)367 {368 num = (_003C_003E1__state = 1);369 _003C_003Eu__2 = val2;370 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<IEntityCollection>, _003C_CheckUniquePasswordAnswer_003Ed__3>(ref val2, ref this);371 return;372 }373 goto IL_021a;374 }375 }376 goto end_IL_000e;377 IL_021a:378 IEntityCollection result = val2.GetResult();379 string value = entity.Columns["PasswordQuery"].GetValue<string>();380 if (!HashFunction.IsHashed(qERPasswordQueryAndAnswer._passwordAnswer))381 {382 List<string> val3 = new List<string>();383 System.Collections.Generic.IEnumerator<IEntity> enumerator = ((System.Collections.Generic.IEnumerable<IEntity>)result).GetEnumerator();384 try385 {386 while (((System.Collections.IEnumerator)enumerator).MoveNext())387 {388 IEntity current = enumerator.Current;389 string value2 = current.Columns["PasswordQuery"].GetValue<string>();390 string value3 = current.Columns["PasswordAnswer"].GetValue<string>();391 if (string.Equals(value, value2, (StringComparison)5))392 {393 throw new ViException(2133444, ExceptionRelevance.EndUser, value);394 }395 if (HashFunction.IsHashed(value3))396 {397 val3.Add(value3);398 }399 }400 }401 finally402 {403 if (num < 0)404 {405 ((System.IDisposable)enumerator)?.Dispose();406 }407 }408 if (HashFunction.Verify(qERPasswordQueryAndAnswer._passwordAnswer, (System.Collections.Generic.IEnumerable<string>)val3))409 {410 throw new ViException(2133445, ExceptionRelevance.EndUser);411 }412 }413 end_IL_000e:;414 }415 catch (System.Exception exception)416 {417 _003C_003E1__state = -2;418 _003C_003E8__1 = null;419 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetException(exception);420 return;421 }422 _003C_003E1__state = -2;423 _003C_003E8__1 = null;424 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetResult();425 }426427 [DebuggerHidden]428 private void SetStateMachine(IAsyncStateMachine stateMachine)429 {430 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetStateMachine(stateMachine);431 }432 }433434 private SecureString? _passwordAnswer;435436 public QERPasswordQueryAndAnswer()437 {438 Format("PasswordAnswer").As<string, string>(_FormatPasswordAnswer);439 RegisterMethod("Unlock").As(Unlock).Enabled().From("IsLocked")440 .As<bool>((Func<bool, bool>)((bool isLocked) => isLocked))441 .Description("Method_QERPasswordQueryAndAnswer_Unlock")442 .NeedsSaving();443 }444445 [AsyncStateMachine(typeof(_003COnSavingAsync_003Ed__2))]446 public override async System.Threading.Tasks.Task<Diff> OnSavingAsync(IEntity entity, LogicReadWriteParameters parameters, CancellationToken cancellationToken)447 {448 //IL_0002: Unknown result type (might be due to invalid IL or missing references)449 //IL_0007: Unknown result type (might be due to invalid IL or missing references)450 //IL_0026: Unknown result type (might be due to invalid IL or missing references)451 //IL_0027: Unknown result type (might be due to invalid IL or missing references)452 if (!entity.IsDeleted())453 {454 await _CheckUniquePasswordAnswer(parameters.Session, entity, cancellationToken).ConfigureAwait(false);455 }456 Diff diff = await base.OnSavingAsync(entity, parameters, cancellationToken).ConfigureAwait(false);457 if (entity.Columns["PasswordAnswer"].IsDifferent)458 {459 diff = new Diff(diff.Data, Enumerable.Concat<DiffOperation>((System.Collections.Generic.IEnumerable<DiffOperation>)diff, (System.Collections.Generic.IEnumerable<DiffOperation>)new global::_003C_003Ez__ReadOnlyArray<DiffOperation>(new DiffOperation[2]460 {461 new DiffOperation462 {463 Type = DiffOperationType.Value,464 Name = "IsLocked",465 Value = false466 },467 new DiffOperation468 {469 Type = DiffOperationType.Value,470 Name = "BadAnswerAttempts",471 Value = 0472 }473 })));474 }475 return diff;476 }477478 [AsyncStateMachine(typeof(_003C_CheckUniquePasswordAnswer_003Ed__3))]479 private System.Threading.Tasks.Task _CheckUniquePasswordAnswer(ISession session, IEntity entity, CancellationToken ct)480 {481 //IL_0002: Unknown result type (might be due to invalid IL or missing references)482 //IL_0007: Unknown result type (might be due to invalid IL or missing references)483 //IL_0026: Unknown result type (might be due to invalid IL or missing references)484 //IL_0027: Unknown result type (might be due to invalid IL or missing references)485 _003C_CheckUniquePasswordAnswer_003Ed__3 _003C_CheckUniquePasswordAnswer_003Ed__ = default(_003C_CheckUniquePasswordAnswer_003Ed__3);486 _003C_CheckUniquePasswordAnswer_003Ed__._003C_003Et__builder = AsyncTaskMethodBuilder.Create();487 _003C_CheckUniquePasswordAnswer_003Ed__._003C_003E4__this = this;488 _003C_CheckUniquePasswordAnswer_003Ed__.session = session;489 _003C_CheckUniquePasswordAnswer_003Ed__.entity = entity;490 _003C_CheckUniquePasswordAnswer_003Ed__.ct = ct;491 _003C_CheckUniquePasswordAnswer_003Ed__._003C_003E1__state = -1;492 ((AsyncTaskMethodBuilder)(ref _003C_CheckUniquePasswordAnswer_003Ed__._003C_003Et__builder)).Start<_003C_CheckUniquePasswordAnswer_003Ed__3>(ref _003C_CheckUniquePasswordAnswer_003Ed__);493 return ((AsyncTaskMethodBuilder)(ref _003C_CheckUniquePasswordAnswer_003Ed__._003C_003Et__builder)).Task;494 }495496 public override System.Threading.Tasks.Task OnSavedAsync(IEntity entity, LogicReadWriteParameters parameters, CancellationToken cancellationToken)497 {498 //IL_0009: Unknown result type (might be due to invalid IL or missing references)499 _DisposePasswordAnswer();500 return base.OnSavedAsync(entity, parameters, cancellationToken);501 }502503 public override System.Threading.Tasks.Task<Diff> OnDiscardedAsync(IEntity entity, LogicReadOnlyParameters parameters, CancellationToken cancellationToken)504 {505 //IL_0009: Unknown result type (might be due to invalid IL or missing references)506 _DisposePasswordAnswer();507 return base.OnDiscardedAsync(entity, parameters, cancellationToken);508 }509510 private void _DisposePasswordAnswer()511 {512 SecureString? passwordAnswer = _passwordAnswer;513 if (passwordAnswer != null)514 {515 passwordAnswer.Dispose();516 }517 _passwordAnswer = null;518 }519520 [AsyncStateMachine(typeof(_003CUnlock_003Ed__7))]521 private System.Threading.Tasks.Task Unlock(ISession session, IEntity entity, CancellationToken ct)522 {523 //IL_0002: Unknown result type (might be due to invalid IL or missing references)524 //IL_0007: Unknown result type (might be due to invalid IL or missing references)525 //IL_001e: Unknown result type (might be due to invalid IL or missing references)526 //IL_001f: Unknown result type (might be due to invalid IL or missing references)527 _003CUnlock_003Ed__7 _003CUnlock_003Ed__ = default(_003CUnlock_003Ed__7);528 _003CUnlock_003Ed__._003C_003Et__builder = AsyncTaskMethodBuilder.Create();529 _003CUnlock_003Ed__.session = session;530 _003CUnlock_003Ed__.entity = entity;531 _003CUnlock_003Ed__.ct = ct;532 _003CUnlock_003Ed__._003C_003E1__state = -1;533 ((AsyncTaskMethodBuilder)(ref _003CUnlock_003Ed__._003C_003Et__builder)).Start<_003CUnlock_003Ed__7>(ref _003CUnlock_003Ed__);534 return ((AsyncTaskMethodBuilder)(ref _003CUnlock_003Ed__._003C_003Et__builder)).Task;535 }536537 private string _FormatPasswordAnswer(string strPasswordAnswer)538 {539 if (string.IsNullOrEmpty(strPasswordAnswer))540 {541 strPasswordAnswer = string.Empty;542 }543 SecureString? passwordAnswer = _passwordAnswer;544 if (passwordAnswer != null)545 {546 passwordAnswer.Dispose();547 }548 _passwordAnswer = strPasswordAnswer.ToSecure();549 if (HashFunction.IsHashed(strPasswordAnswer))550 {551 return strPasswordAnswer;552 }553 return HashFunction.Default.Hash(strPasswordAnswer);554 }555}556