Почему Delete не поддерживается в ASP.Net Identity
Я возился с новыми функциями аутентификации, которые недавно были в RTM с Visual Studio 2013.
При реализации пользовательского хранилища UserStore я просматривал декомпилированные источники для UserStore, который поставляется в коробке,Microsoft.AspNet.Identity.EntityFramework.UserStore<TUser>
, Я заметил, что метод удаления пользователя не поддерживается:
public class UserStore<TUser> : IUserLoginStore<TUser>, IUserClaimStore<TUser>, IUserRoleStore<TUser>, IUserPasswordStore<TUser>, IUserSecurityStampStore<TUser>, IUserStore<TUser>, IDisposable where TUser : IdentityUser
{
// other stuff omitted
public virtual Task DeleteAsync(TUser user)
{
throw new NotSupportedException();
}
}
Это странно, не правда ли? Почему удаление пользователя не поддерживается?
Я признаю, что не могу вспомнить производственную систему, в которой я написал жестко удаленные записи пользователей, но я не понимаю, почему эта функциональность не поддерживается.
Есть ли техническая причина или это просто потому, что Microsoft считает, что удаление use, r records - это «плохо», и оставляет разработчику возможность переопределить метод?
ОбновитьВ попытке понять, о чем думала команда ASP.NET, я искал использование фреймворкаDeleteAsync(TUser user)
, Ничто в рамках, кажется, не вызывает это. Таким образом, кажется, что они могли бы полностью оставить члена внеIUserStore<TUser>
интерфейс.
На этом этапе я пришел к выводу, что его можно реализовать, если вы хотите и как хотите, и что он будет вызываться только вашим кодом приложения или будущими библиотеками управления пользователями.