排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256
50010702506256
欢迎加群交流技术
分类:
.NET Core
我们用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,而且最重要的是,原先带的参数讲过这样跳转一圈后是可以接收到的!所以文章标题的问题就可以被解决了!

不容易哇不容易哇,搜了好久的资料都没有,只能自己慢慢摸索
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)
评价