Asp.Net Core 未经授权登录 - C#
创始人
2024-09-15 16:00:06
0

要解决Asp.Net Core未经授权登录的问题,你可以通过以下步骤进行操作:

  1. 添加身份验证和授权中间件:在Startup.cs文件的ConfigureServices方法中,添加以下代码来配置身份验证和授权中间件:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(options =>
    {
        options.LoginPath = "/Account/Login"; // 登录页面的路径
        options.AccessDeniedPath = "/Account/AccessDenied"; // 未授权访问的路径
    });

services.AddAuthorization();

  1. 在Startup.cs文件的Configure方法中,添加以下代码将中间件添加到请求管道中:
app.UseAuthentication();
app.UseAuthorization();
  1. 添加控制器和视图:创建一个名为AccountController的控制器,并添加Login和AccessDenied动作:
[AllowAnonymous]
public class AccountController : Controller
{
    public IActionResult Login()
    {
        return View();
    }

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task Login(LoginViewModel model, string returnUrl = null)
    {
        // 验证用户登录信息

        // 如果验证成功,使用以下代码进行身份验证:
        var claims = new List
        {
            new Claim(ClaimTypes.Name, model.Username),
            // 添加其他所需的声明
        };

        var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
        var principal = new ClaimsPrincipal(identity);

        await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);

        // 根据需要进行重定向
        return RedirectToAction("Index", "Home");
    }

    public async Task Logout()
    {
        await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);

        // 根据需要进行重定向
        return RedirectToAction("Index", "Home");
    }

    public IActionResult AccessDenied()
    {
        return View();
    }
}
  1. 创建一个Login.cshtml视图来显示登录表单,并添加以下代码:
@model LoginViewModel

  1. 创建一个AccessDenied.cshtml视图来显示未授权页面。

这样,当用户访问需要授权的页面时,将会被重定向到登录页面。如果登录成功,用户将被重定向到原始请求的页面;如果登录失败,将会显示一个未授权页面。

相关内容

热门资讯

竟然有挂开挂!天天爱柳州麻将辅... 竟然有挂开挂!天天爱柳州麻将辅助器,奇迹陕西辅助(六分钟了解开挂辅助安装) 【无需打开直接搜索加薇1...
有挂规律开挂!闲逸辅助器,微友... 有挂规律开挂!闲逸辅助器,微友辅助器免费版(新手必备开挂辅助软件) >>您好:软件加薇1367043...
确实有挂辅助!丰城双剑辅助,新... 确实有挂辅助!丰城双剑辅助,新九哥开挂(每日必备开挂辅助下载) >>您好:软件加薇136704302...
有挂工具开挂!杭州都莱大菠萝辅... 有挂工具开挂!杭州都莱大菠萝辅助器,微友助手破解版(透视私人局开挂辅助平台) 了解更多开挂安装加(1...
真的有挂开挂!海贝之城正版辅助... 真的有挂开挂!海贝之城正版辅助,哥哥打大a有辅助吗(2分钟细说开挂辅助平台)哥哥打大a有辅助吗ai黑...
有挂方针开挂!潘潘讲故事辅助器... 有挂方针开挂!潘潘讲故事辅助器,人海大厅辅助插件(玩家必备教程开挂辅助插件);是一款可以让一直输的玩...
有挂教程辅助!威信茶馆修改器,... 有挂教程辅助!威信茶馆修改器,wpk辅助最怕三个东西(六分钟了解开挂辅助神器)威信茶馆修改器ai黑科...
有挂详细辅助!边锋老友辅助器,... 有挂详细辅助!边锋老友辅助器,菠萝辅助器免费版的特点(发现一款开挂辅助平台) >>您好:软件加薇13...
有挂规律开挂!老友广东麻将有挂... 老友广东麻将有挂吗 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理由: ...
有挂实锤开挂!途游辅助器软件,... 有挂实锤开挂!途游辅助器软件,德扑圈有透视吗(一分钟了解开挂辅助工具);无需打开直接搜索加(薇:13...