我有一个网络应用程序,允许用户支付假期预订。
用户将使用唯一的预订ID和预订密码的组合登录。
有一种简单的方法可以在用户成功登录后对其进行身份验证。为此目的使用.net会话对象是否是个好主意?
应用程序不会进行负载平衡,因此我不必担心在不同的计算机上存储会话。
我不想使用.Net会员资格,因为我不想在数据库中创建任何额外的表。
答案 0 :(得分: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();
}
答案 1 :(得分:1)