我正在尝试在ASP.NET 5之上实现我自己的JWT Bearer身份验证版本,而不引用任何现有的JWT令牌处理程序类。我的练习是了解身份验证和授权的内部机制。
我有一个可以玩的项目。见here。 JWT令牌代码位于单独的程序集中 - SimpleJwtAuth
。它可以通过用户登录名和密码生成令牌。但我对身份验证有疑问。我继承自AuthenticationHandler<TAuthOptions>
,可以使用AuthenticationResult.Failed
返回AuthenticationResult.Success
或AuthenticationTicket
。
问题在于我没有看到这个AuthenticationTicket
如何记录用户。我应该自己调用SignInManager.SignInAsync
,还是忘记设置任何参数来自动生成?
说到示例:我发现签署用户是开发人员的代码责任。这让我觉得我应该做类似的事情。但那么 - 为什么我们需要AuthenticateResult
及其门票?
答案 0 :(得分:0)
您认为开发人员有责任登录?
SignInManager
是Identity包的一部分。如果您没有将身份包与cookie身份验证结合使用,则无需调用它。使用故障单返回AuthenticationResult.Success
足以在当前请求上放置Principal
,这实际上是登录的内容。