При разработке основного веб-приложения Asp.Net мне нужно было добавить базовую идентификацию Asp.Net в мой проект.Однако мне понадобилась лишь небольшая часть удостоверений, потому что, например, я знаю, что это приложение никогда не разрешит сторонние входы в систему.Поэтому я решил написать свои кастомные магазины.В поисках хороших решений в Интернете о том, как это сделать, я часто видел такую реализацию:
public Task SetUserNameAsync(ApplicationUser user, string userName, CancellationToken cancellationToken)
{
cancellationToken.ThrowIfCancellationRequested();
if (user == null)
throw new ArgumentNullException(nameof(user));
if(string.IsNullOrWhiteSpace(userName))
throw new ArgumentNullException(nameof(userName));
user.Username = userName;
return Task.CompletedTask;
}
или
public Task<string> GetUserNameAsync(ApplicationUser user, CancellationToken cancellationToken)
{
cancellationToken.ThrowIfCancellationRequested();
if (user == null)
throw new ArgumentNullException(nameof(user));
return Task.FromResult(user.Username);
}
, насколько я понимаю, это будет вызваномода, подобная этой:
var user = await store.GetUserNameAsync(_user, CancellationToken.None);
, но разве это не создаст State Mashine для геттера / установщика, который должен просто немедленно вернуться без каких-либо больших накладных расходов, или есть какая-то хорошая выгода, если я сделаю это так, что ясейчас не вижу?