在 ASP.NET 5 中实施自定义身份验证提供程序

Implementing custom authentication provider in ASP.NET 5

我正在尝试在 ASP.NET 5 之上实现我自己的 JWT Bearer 身份验证版本,而不引用任何现有的 JWT 令牌处理程序 类。了解认证授权的内部机制是我的练习。

我有一个项目要玩。看到它here。 JWT 令牌代码位于单独的程序集中 - SimpleJwtAuth。它可以通过用户登录名和密码生成令牌。但我对身份验证有疑问。我继承自 AuthenticationHandler<TAuthOptions>,它可以 return AuthenticationResult.FailedAuthenticationResult.SuccessAuthenticationTicket

问题是我不明白 AuthenticationTicket 如何让用户登录。我应该自己调用 SignInManager.SignInAsync 还是忘记设置任何参数来实现这一点自动?

说到示例:我发现让用户登录是开发人员的代码责任。这让我觉得我应该做类似的事情。但是那么 - 为什么我们需要 AuthenticateResult 和它的门票呢?

您从哪里看出开发者有责任登录?

SignInManager 是身份包的一部分。如果您没有将身份包与 cookie 身份验证结合使用,则无需调用它。返回带有票证的 AuthenticationResult.Success 足以在当前请求上放置 Principal,这实际上就是登录。