При разработке основного веб-приложения Asp.Net мне нужно было добавить в свой проект идентификацию Asp.Net Core. Однако мне нужна была лишь небольшая часть Identity, потому что, например. Я знаю, что это приложение никогда не позволит сторонним входам в систему. Поэтому я решил написать свои пользовательские магазины. При поиске в Интернете хороших решений о том, как это сделать, я часто видел такую реализацию:
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;
}
or
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 для геттера/сеттера, который должен просто немедленно вернуться без каких-либо больших накладных расходов, или есть ли какая-то хорошая польза от этого, которую я не вижу прямо сейчас?