2015-11-19 4 views
1

У меня есть веб-приложение, которое позволяет пользователю оплачивать отпуск.Пользовательская аутентификация .Net MVC

Пользователь войдет в систему, используя комбинацию уникального идентификатора бронирования и пароля для бронирования.

Есть ли простой способ аутентификации пользователя после успешного входа в систему. Полезно ли использовать для этого объект сеанса .net?

Приложение не будет сбалансировано, поэтому мне не нужно беспокоиться о сохранении сеанса на разных машинах.

Мне не нужно использовать членство .Net, поскольку я не хочу создавать дополнительные таблицы в базе данных.

ответ

2

Если вы можете получить пользователя, я думаю, это возможно. Ниже способ, которым я хотел бы попробовать:

public ActionResult UrlAuth(string bookingId, string bookingPass) 
{ 
    var userManager=HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); 

    // Retrieve the user by the give booking values (Custom part in your app 
    string userId= _bookingRepository.GetUserIdByBooking(bookingId, bookinggPass); 

    var user = userManager.FindById(userId); 
    if (user != null) 
    { 
     var userIdentity = userManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie); 

     HttpContext.GetOwinContext().Authentication.SignIn(new AuthenticationProperties { IsPersistent = false }, userIdentity); 

     // authentication succeed do what you want 
     return Redirect("Wherever"); 
    } 

    ModelState.AddModelError("", "Invalid booking values"); 

    return View(); 
} 
+0

Спасибо. Это помогло много –

+0

Добро пожаловать, goodluck. –

Смежные вопросы