Метод FormsAuthentication и IsValid не существует в текущем контексте ошибки - PullRequest
0 голосов
/ 21 апреля 2020

Я новичок в веб-приложении ASP. net, и в настоящее время я создаю форму подтверждения входа в систему, беря данные из указанной c базы данных. Я использую модель FormsAuthentication для привязки каталога во время входа в систему. Но вместо этого я получил красную линию на модели, как показано ниже: Ошибка

login.cs html .cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RedoAssignment.Models;
using Microsoft.EntityFrameworkCore;
using RedoAssignment.Table;
using System.Web;

namespace RedoAssignment.Pages
{
public class loginModel : PageModel
{
    public ActionResult Index()
    {
        return Page();
    }

    [HttpGet]
    public ActionResult login()
    {
        return Page();
    }

    [HttpPost]
    public ActionResult login(Models.RedoAssignmentContext context)
    {
        if (ModelState.IsValid)
            {
               FormsAuthentication.SetAuthCookie(User.email, User.password);
               return RedirectToAction("Index", "Home");
             }

            else
            {
                ModelState.AddModelError("", "Login data is incorrect!");
            }

        return Page();
    }
}

Модель User.cs

 public class User
{
    [Key]
    public int customerID { get; set; }

    [StringLength(60, MinimumLength = 3)]
    [Required]
    [Display(Name = "Full Name")]
    public string fullName { get; set; }

    [Required]
    [Display(Name = "Email")]
    [DataType(DataType.EmailAddress)]
    public string email { get; set; }

    [Required]
    [Display(Name = "Password")]
    [DataType(DataType.Password)]
    public string password { get; set; }

    [StringLength(20, MinimumLength = 3)]
    [Required]
    [Display(Name = "Contact Number")]
    public string contactNumber { get; set; }

    [StringLength(60, MinimumLength = 3)]
    [Required]
    [Display(Name = "Address")]
    public string address { get; set; }
}

Я хотел бы знать, где я делаю ошибки, спасибо.

Редактировать: я использовал добавить if (User.IsValid (User.email, User.password) ) значение раньше, но в операторе IsValid была красная линия.

if (ModelState.IsValid)
        {
          if(User.IsValid(User.email, User.password))
           {
           FormsAuthentication.SetAuthCookie(User.email, User.password);
           return RedirectToAction("Index", "Home");
           }
         }

1 Ответ

0 голосов
/ 21 апреля 2020
  1. FormsAuthentication.SetAuthCook ie () не принимает два строковых аргумента в качестве параметров.
  2. FormsAuthentication.SetAuthCookie(string email, bool createPersistentCookie);
  3. Никогда не устанавливайте свой пароль в кулинарии ie
  4. Вы не можете использовать любое из свойств модели User, так как оно не создано и не является классом c. //User.email
  5. User.IsValid () не будет работать, поскольку в вашем классе User такого метода нет.
  6. Лучшее использование. net Идентификация или любой другой предпочтительный способ проверки пользователь.
if(ModelState.IsValid)
{
 if(condition) //validate whether user exists
  FormsAuthentication.SetAuthCookie(email, true/false);
 else
  ModelState.AddModelError("", "Login data is incorrect!");
}
...