ASP.NET Core MVC身份验证登录问题
创始人
2024-09-15 08:30:36
0

在ASP.NET Core MVC中进行身份验证登录可以通过使用ASP.NET Core Identity来实现。下面是一种解决方法,包含代码示例:

首先,确保你的项目已经正确配置了ASP.NET Core Identity。可以通过在Startup.cs文件的ConfigureServices方法中添加以下代码来配置:

services.AddIdentity()
    .AddEntityFrameworkStores()
    .AddDefaultTokenProviders();

接下来,在Startup.cs文件的Configure方法中添加以下代码来启用身份验证:

app.UseAuthentication();

接下来,创建一个AccountController.cs文件,并添加以下代码:

public class AccountController : Controller
{
    private readonly UserManager _userManager;
    private readonly SignInManager _signInManager;

    public AccountController(UserManager userManager, SignInManager signInManager)
    {
        _userManager = userManager;
        _signInManager = signInManager;
    }

    [HttpGet]
    public IActionResult Login()
    {
        return View();
    }

    [HttpPost]
    public async Task Login(LoginViewModel model, string returnUrl = null)
    {
        returnUrl = returnUrl ?? Url.Content("~/");

        if (ModelState.IsValid)
        {
            var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
            if (result.Succeeded)
            {
                return LocalRedirect(returnUrl);
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Invalid login attempt.");
                return View(model);
            }
        }

        return View(model);
    }

    [HttpPost]
    public async Task Logout()
    {
        await _signInManager.SignOutAsync();
        return RedirectToAction("Index", "Home");
    }
}

在上面的代码中,我们创建了一个AccountController类,并注入了UserManager和SignInManager来处理用户相关的操作。Login方法用于显示登录表单的视图,Login方法的HttpPost版本用于处理实际的登录逻辑。Logout方法用于注销用户。

创建一个LoginViewModel.cs文件,并添加以下代码:

public class LoginViewModel
{
    [Required]
    [EmailAddress]
    public string Email { get; set; }

    [Required]
    [DataType(DataType.Password)]
    public string Password { get; set; }

    [Display(Name = "Remember me?")]
    public bool RememberMe { get; set; }
}

上面的代码定义了用于登录的视图模型。

接下来,创建一个Login.cshtml文件,并添加以下代码:

@model LoginViewModel

Login

上述代码创建了一个用于登录的表单视图。

最后,在你的视图中使用以下代码来显示登录链接:

@Html.ActionLink("Login", "Login", "Account")

这样,你就完成了ASP.NET Core MVC身份验证登录的基本配置和实现。用户可以通过访问/login来打开登录表单进行登录,并通过访问/logout注销登录。

相关内容

热门资讯

让我来分享经验!hhpoker... 让我来分享经验!hhpoker是真的吗,如何下载wpk透视版,其实是有挂(存在有挂)1、完成有辅助插...
我来教教大家!xpoker辅助... 我来教教大家!xpoker辅助器,aapoker插件下载,总是真的有挂(有挂透视)1、全新机制【ai...
总算了解!wpk辅助器,soh... 总算了解!wpk辅助器,sohoo poker辅助,切实真的有挂(有挂方式)1、起透看视 辅助软件价...
指导大家!来玩app 德州 辅... 指导大家!来玩app 德州 辅助,wepoker好友助力码,都是是真的有挂(有挂分析)1、这是跨平台...
玩家必看攻略!wepoker轻... 玩家必看攻略!wepoker轻量版透视系统,wepoker高级辅助,真是存在有挂(有挂实锤)辅助器是...
一分钟快速了解!wepoker... 一分钟快速了解!wepoker透视最简单三个步骤,购买的wpk辅助在哪里下载,其实有挂(有挂教学)1...
玩家爆料!wepoker辅助器... 玩家爆料!wepoker辅助器安装包,wepoker辅助器安装包,总是是真的有挂(有挂规律)1、we...
最新技巧!hhpoker有后台... 最新技巧!hhpoker有后台操作吗,pokemmo手机版脚本,竟然存在有挂(有挂教学)1、透视辅助...
带你了解!德普之星有辅助软件吗... 带你了解!德普之星有辅助软件吗,红龙poker有辅助吗,竟然真的有挂(详细教程)1、进入游戏-大厅左...
分享给玩家!wejoker内置... 分享给玩家!wejoker内置辅助,约局吧德州透视,果然存在有挂(今日头条)1)有没有挂:进一步探索...