asp.net core 设置登录路径,总是进入home页面的处理---options.LoginPath = "/Login/Index";

1、设置登录的路径

  services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(options =>
           {
               options.LoginPath = "/Login/Index";
               options.LogoutPath = "/Login/Logout";
               options.ExpireTimeSpan = TimeSpan.FromMinutes(15);
           });

2、新建一个BaseController控制器继承自Controller代码如下:

namespace aaa
{
    [Authorize(AuthenticationSchemes = CookieAuthenticationDefaults.AuthenticationScheme)]
    public class BaseController : Controller
    {
        //此处是做各种操作的拦截
    }
}

namespace aaaa
{
    public class HomeController : BaseController
    {
      public IActionResult Index()
        {
            return View();
        }
    }
}

3、以上设置就会首次访问登录LoginController控制器了,为了登录成功之后下次直接进入home控制器需要在LoginController中如下设置:

/// <summary>
/// 登陆成功
/// </summary>
/// <param name="json"></param>
/// <returns></returns>
[HttpPost]
public ActionResult SubmitLogin(JObject json)//前端用json进行交互
{
 var result = JsonConvert.DeserializeObject<IDictionary<string, string>> 
   (json.ToString());
  AjaxResult res = userService.SubmitLogin(result["username"], result["password"]);
    string Token = "123456";
    string Name = result["username"];
    ClaimsIdentity identity = new ClaimsIdentity("Forms");
     identity.AddClaim(new Claim(ClaimTypes.Sid, Token));
     identity.AddClaim(new Claim(ClaimTypes.Name,Name));

     ClaimsPrincipal claims = new ClaimsPrincipal(identity);
            
     HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,claims);

       return Content(res.ToJson());
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值