Есть ли другой метод для создания формы входа / регистрации без сессии в MVC? - PullRequest
1 голос
/ 29 марта 2019

Я создаю форму входа в свой проект так же, как из сеанса, но теперь в этом проекте я хочу создать форму входа без использования какого-либо сеанса. Кто-нибудь здесь, чтобы вести меня? Есть моя работа с использованием сессии, Это контроллер входа в систему:

 public class LoginController : Controller
    {
        IMEI_WEB_MVC.Connections.IMEI_DBEntities imeidb = new Connections.IMEI_DBEntities();
        Functions func = new Functions();
        // GET: Login
        public ActionResult Index()
        {
            return View();
        }
        [HttpGet]
        public ActionResult Autherize(log_variable logvariable_model)
        {
            log_variable lgv = new Models.log_variable();
            string pwd = func.security(logvariable_model.usr_pwd);
            var userDetails = imeidb.new_usr.Where(x => x.usr_nam == logvariable_model.usr_nam && x.usr_pwd == pwd).FirstOrDefault();
            if (userDetails == null)
            {
                logvariable_model.LogErrorMessage = " Invalid Name or Password";
                return View("Index", logvariable_model);
            }
            else
            {
                Session["usr_id"] = userDetails.usr_id;
                Session["com_id"] = logvariable_model.com_id;
                Session["br_id"] = logvariable_model.br_id;
                //lgv.usr_id = userDetails.usr_id;
                //lgv.com_id = logvariable_model.com_id;
                //lgv.br_id = logvariable_model.br_id;

                return RedirectToAction("index", "m_dpt");

Это моя модель:

  public class log_variable
    {
        [Required(ErrorMessage = "User Name cannot be blank")]
        [DisplayName("Name")]
        public string usr_nam { get; set; }
        [Required(ErrorMessage = "Password cannot be Blank")]
        [DataType(DataType.Password)]
        [DisplayName("Password")]
        public string usr_pwd { get; set; }
        public int usr_id { get; set; }

        [Required(ErrorMessage = "Company ID cannot be blank")]
        [MaxLength(2)]
        [DisplayName("Company_ID")]
        public string com_id { get; set; }
        [Required(ErrorMessage ="Branch ID cannot be blank")]
        [MaxLength(3)]
        [DisplayName("BRANCH_ID")]
        public string br_id { get; set; }
        public string LogErrorMessage { get; set; }
    }

1 Ответ

0 голосов
/ 29 марта 2019

AFAIK, для управления доступом такого типа у вас есть в основном только два варианта:

  • Вы можете управлять, когда они входят в систему и когда они выходят из системы (сеансы), ИЛИ
  • Вы можете дать им билет, и они должны передать его в ваше приложение (токен безопасности, например, JWT). (Если кто-нибудь знает другой метод, чтобы сделать это, пожалуйста, скажите мне)

Спросите своего босса, идет ли речь о хранении данных в сеансе в памяти или во избежание кулинарии, потому что есть способы сделать это с помощью сеансов. Взгляни на this (сеансы в БД) и this (сеансы без cookie)

Если вы найдете другой способ, пожалуйста, сообщите нам.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...