У меня есть конструктор класса в виде:
protected LoginFunctions(){…..}
В этой функции я вызываю асинхронную функцию, используя:
var tsk = Task.Run(async () => await PrePopulateLogin());
Моя проблема в том, что функция PrePopulateLogin все еще выполняется при выходе из конструктора. Как я могу изменить свой код так, чтобы конструктор не выходил до тех пор, пока PrePopulateLogin не закончил?
PrePopulateLogin должен быть асинхронным.
private async Task PrePopulateLogin()
{
var vector = await JSRuntime.Current.InvokeAsync<string>("blazorExtensions.ReadCookie", "vector");
var secureNextLogon = await JSRuntime.Current.InvokeAsync<string>("blazorExtensions.ReadCookie", "SecureNextLogon");
if (secureNextLogon != null)
{
var encryptor = new AesEncryptor(SecurityConstants.SecurityKey, Convert.FromBase64String(vector));
var decryptedValue = encryptor.Decrypt(secureNextLogon);
var email = decryptedValue.Split(' ')[0].Substring(6);
var password = decryptedValue.Split(' ')[1].Substring(9);
var rememberMe = decryptedValue.Split(' ')[2].Substring(11);
if (rememberMe == "True")
{
UserModel.EmailAddress = email;
UserModel.Password = password;
UserModel.RememberUser = true;
}
}
}