Я возился с новыми функциями auth, которые недавно RTM'd с 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 считает, что удаление записей пользователей является "плохим" и оставляет его как упражнение для переопределения метода разработчиком?
Update
В попытке понять, что думала команда ASP.NET, я искал рамки использования DeleteAsync(TUser user)
. Ничто в структуре, кажется, не вызывает этого. Таким образом, кажется, что они могли полностью вывести элемент из интерфейса IUserStore<TUser>
.
Мое заключение на этом этапе заключается в том, что он там реализуется, если вы хотите и как вы хотите, и что он будет когда-либо вызываться вашим кодом приложения или будущими библиотеками управления пользователями.