c# – SignInAsync vs AuthenticateAsync
我终于通过JWT令牌认证工作获得了登录方法.
我在这里打电话 await HttpContext.SignInAsync( CookieAuthenticationDefaults.AuthenticationScheme,ClaimsPrincipalFactory.CreatePrincipal(claims),authProps); 我也打过电话 await HttpContext.AuthenticateAsync(CookieAuthenticationDefaults.AuthenticationScheme); 在示例中,我读到我只需要SignInAsync. 是否可以删除AuthenticateAsync?还是我还需要它?它为什么存在? 解决方法
以下是来自Authentification框架(针对ASP.NET Core 2.0)的所有各种方法之间的概述,按照在典型的auth流程中调用它们的顺序.
ChallengeAsync 这将指示您的浏览器在哪里进行身份验证.例如: > Cookies会将您重定向到您自己的登录页面(例如/帐户/登录) AuthenticateAsync 此步骤处理来自验证页面(您在“挑战”步骤中重定向到的位置)的任何信息,并使用它来创建标识登录用户的ClaimsPrincipal实例. 然后将ClaimsPrincipal分配给HttpContext.User. SignInAsync 此步骤采用上一步构建的ClaimsPrincipal,并保留它.最常见的方式当然是cookies. 请注意,基于https://github.com/aspnet/Security/中的源代码,它似乎是持久化ClaimsPrincipal的唯一方法. SignOutAsync 这是SignIn步骤的相反步骤.它指示中间件删除任何持久数据. > Cookies将删除存储的cookie 因此,要回答您的问题,如果您已经拥有ClaimsPrincipal,则无需调用AuthenticateAsync. 事实上,在调用AuthentificateAsync之前你有一个ClaimsPrincipal有点奇怪:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c – 我们总结XOR字符串加密比众所周知的加密安全
- C错误C2143语法错误:缺少’;’在函数名之前
- ruby-on-rails – Rails中的REST API参数验证
- 依赖注入 – 应该使用DI(层)?
- ruby-on-rails – 在Rails中执行BDD / TDD的最快
- 最快让你上手ReactiveCocoa之进阶篇
- VBA在活动的Word文档光标处粘贴选中的Excel Char
- [2]Cocos2d-x之引用计算(referenceCount)的增减时
- c# – 我怎么能让Resharper或Intellisense知道一
- LeetCode 51. N-QueensN皇后 (C++)(八皇后问题)