剑轩

identity server4登录成功后,跳转到原来的页面

电脑版发表于:2020/1/4 21:45

我们用identity server4现在访问权限一般都是在某个控制器加上Authorize特性,这样就会访问他的时候跳转到授权中心。

这种方式登录成功后是可以跳转到访问的action上。但是有些时候我想在前台没有登录的时候就提醒用户是否登录,当用户点击是的时候就跳转到授权中心去。

开始想的是用js直接跳转到授权中心去给一个当前页面的Url发现虽然登录成功后能返回但是并没有携带User.Claims数据。


研究了很久发现实现action中转的时候是可以带上自己的参数的,比如你带一个url过去,登录成功后才能够带回来的!

既然登录的时候不好用js直接去跳转到授权中心,因为要传递的参数很多哇,clientid,response_type,scope等等,所以我想就用一个需要登录才能访问的action来做中转

public IActionResult Login(string returnUrl = null)
{
    if (returnUrl == null)
    {
        return RedirectToAction("index", "home");
    }
    else
    {
        return Redirect(returnUrl);
    }
}

代码很简单,就是接受一个url,然后进行跳转。

需要提醒用户登录的页面直接访问当前项目中的Login方法即可:

当然没有登录的时候下跳转到account/login是不能进行的,它会直接跳转到授权中心,然后登录成功后在跳回来account/login,而且最重要的是,原先带的参数讲过这样跳转一圈后是可以接收到的!所以文章标题的问题就可以被解决了!


不容易哇不容易哇,搜了好久的资料都没有,只能自己慢慢摸索



关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢