Так, казалось бы, что там нет встроенной функциональности в службах ASP.NET авторизаций, чтобы справиться с этим, поэтому лучшим решением будет проверять против заранее определенного списка от имени пользователя и предотвратить регистрацию, если есть совпадение.
С помощью Emil, я буду делать следующее в своем методе Register
в Authentication Controller
.
EDIT: после обратной связи от Chris Pratt, мы можем добавить сообщение об ошибке в modelstate.
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
if (constants.BannedUsernames.Contains(model.Username)
{
ModelState.AddModelError("Username", "That username has been taken, please try another username");
}
if (ModelState.IsValid)
{
// Continue with the existing code...
}
}
Затем нам нужно хранить список запрещенных имен пользователей, у меня уже есть статический класс, который содержит статические переменные, которые я использую на протяжении всего моего сайта:
public static class constants
{
public static List<string> BannedUsernames = new List<string>()
{
"admin",
"superadmin"
// whatver usernames you want to block
};
}
Я поддерживать черный список имен пользователей и проверить его против процесса регистрации – Emil
Вот что я думал, но задавался вопросом, была ли «лучшая практика» для такого рода вещей. – Ant
Зарегистрировать действие в контроллере счета – Emil