前言
asp.net core2.2 用户验证 和授权有很详细和特贴心的介绍,我感兴趣的主要是这两篇:
我的项目有两类用户:
微信公众号用户,用户名为公众号的openid
企业微信的用户,用户名为企业微信的userid
每类用户中部分人员具有“Admin”角色
因为企业微信的用户有可能同时是微信公众号用户,即一个人两个名,所以需要多用户验证和授权。咱用代码说话最简洁,如下所示:
下面咱一步一步实现。
第一步 改造类Startup
修改ConfigureServices方法,加入以下代码
修改Configure方法,加入以下代码
第二步 添加验证
第三步 添加授权
就是在对应的Action前面加[Authorize]
Ctrl+F5运行,截屏如下:
最后,讲讲碰到的坑和求助
坑
一开始的验证的代码如下:
返回类型为Task ,因为懒得写View,顺手写了句return Content("OK");
从网站复制过来代码,AuthenticationProperties没有设置任何内容
运行起来以后不停的调用login,百度了半天,改了各种代码,最后把return Content("OK");改成return RedirectToAction("Index");一切OK!
揣摩原因可能是当 return Content("OK");时,自动调用AuthenticationProperties的RedirectUri,而RedirectUri为空时,自动调用自己。也不知道对不对。
这时候重视起RedirectUri,本来就要返回到returnUrl,是不是给RedirectUri赋值returnUrl就能自动跳转?
确实,return Content("OK");时候自动跳转了,return RedirectToAction("Index");无效。
最后把Task 改成Task ,把return ...删除,一切完美!(弱弱问一句,是不是原来就应该这样写?我一直在走弯路?)
求助
User有属性Identities,看起来可以有多个Identity,如何有?
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。
原文链接:https://www.cnblogs.com/catzhou/p/10243069.html