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