Мне присвоено назначение модификации приложения ASP.NET MVC таким образом, что при серфинге на myurl? Username = xxxxxx автоматически регистрируется пользователь xxxxxx без запроса паролей.Вход для входа в систему ASP.NET MVC без пароля
Я уже ясно дал понять, что это ужасная идея по многим причинам и сценариям, связанным с безопасностью, но ответственные люди определены. Сайт не будет общедоступным.
Итак: есть ли способ входа без пароля, например, расширение Microsoft.AspNet.Identity.UserManager и изменение AccountController?
Некоторый код:
var user = await _userManager.FindAsync(model.UserName, model.Password);
if (user != null && IsAllowedToLoginIntoTheCurrentSite(user))
{
user = _genericRepository.LoadById<User>(user.Id);
if (user.Active)
{
await SignInAsync(user, model.RememberMe);
_userManager держит экземпляр Microsoft.AspNet.Identity.UserManager.
и SignInAsync():
private async Task SignInAsync(User user, bool isPersistent)
{
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
var identity = await _userManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
if (user.UserGroupId.IsSet())
user.UserGroup = await _userManager.Load<UserGroup>(user.UserGroupId);
//adding claims here ... //
AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = isPersistent }, new CustomClaimsIdentity(identity));
}
AuthenticationManager будет OwinSecurity.
Покажите нам свой 'login' код :) –
... и, конечно, ни одна компания никогда не имеет проблем с инсайдерских угроз * кашель * Сноуден * кашель *. Что касается вашего вопроса, да, это легко. Сделать вещи менее безопасными всегда есть. У меня возникнет соблазн установить пароль каждого пользователя на пустую строку и использовать ее неявно (быстро «грязно, но это будет работать, а также указать, что ваша безопасность бесполезна одновременно»). Если вы хотите сделать это «правильно», вы можете подклассифицировать поставщиков auth – Basic
@AndyRefuerzo: Я добавил соответствующий код. – Bjorn