Mat*_*ger 11 c# authentication access-token asp.net-core
我终于通过JWT令牌认证工作获得了登录方法.
我在这里打电话
await HttpContext.SignInAsync(
CookieAuthenticationDefaults.AuthenticationScheme,
ClaimsPrincipalFactory.CreatePrincipal(claims),
authProps);
Run Code Online (Sandbox Code Playgroud)
我也打过电话
await HttpContext.AuthenticateAsync(CookieAuthenticationDefaults.AuthenticationScheme);
Run Code Online (Sandbox Code Playgroud)
在示例中,我读到我只需要SignInAsync.所以我测试了它并删除了AuthenticateAsync.但是,User.Identity.IsAuthenticated回归true.
可以删除AuthenticateAsync吗?还是我还需要它?它为什么存在?文档字符串AuthenticateAsync只表示验证的扩展方法
Mét*_*ule 26
以下是来自Authentification框架(针对ASP.NET Core 2.0)的所有各种方法之间的概述,按照在典型的auth流程中调用它们的顺序.
ChallengeAsync
这将指示您的浏览器在哪里进行身份验证.例如:
/Account/Login)AuthenticateAsync
此步骤处理来自验证页面(您在"挑战"步骤中重定向到的位置)的任何信息,并使用它来创建ClaimsPrincipal标识登录用户的实例.
这ClaimsPrincipal然后分配给HttpContext.User.
SignInAsync
此步骤采用ClaimsPrincipal上一步构建,并保持不变.最常见的方式当然是cookies.
请注意,基于https://github.com/aspnet/Security/中的源代码,它似乎是唯一可以持久保存的方法ClaimsPrincipal.
SignOutAsync
这是该步骤的相反SignIn步骤.它指示中间件删除任何持久数据.
所以要回答你的问题,如果你已经有了,那就没有必要ClaimsPrincipal打电话了AuthenticateAsync.
事实上,在你ClaimsPrincipal打电话之前有点奇怪AuthentificateAsync:)
| 归档时间: |
|
| 查看次数: |
5262 次 |
| 最近记录: |