Asp.net core mvc ControllerBase中的SignIn和SignOut方法的目的是什么?
类中的和方法的用途是什么(由Asp.net core mvc ControllerBase中的SignIn和SignOut方法的目的是什么?,asp.net-core-mvc,Asp.net Core Mvc,类中的和方法的用途是什么(由Controller类继承) 这两个方法分别返回a和a,它们都继承自基类(实现IActionResult) 查找SignInResult和SignOutResult的源代码,您会看到它们分别调用和 但我从未见过这两种方法在任何地方使用。如果查看AccountController,则它使用ApplicationSigningManager登录和注销,而不是使用上述方法 由于它们是ActionResult,因此我相信它们将用作控制器中操作的返回值 比如像这样的东西比如:
Controller
类继承)
这两个方法分别返回a和a,它们都继承自基类(实现IActionResult
)
查找SignInResult
和SignOutResult
的源代码,您会看到它们分别调用和
但我从未见过这两种方法在任何地方使用。如果查看AccountController
,则它使用ApplicationSigningManager
登录和注销,而不是使用上述方法
由于它们是ActionResult
,因此我相信它们将用作控制器中操作的返回值
比如像这样的东西比如:
public IActionResult SignIn()
{
返回登录(用户,“自动”);
}
但这显然毫无作用。它似乎没有登录用户,也没有向用户返回任何内容。我不确定要传递哪些参数,但我在控制器中找到了User
(来自HttpContext
)
那么,这两种方法的目的是什么,以及它们打算如何使用呢?AccountController使用ASP.Identity,而ASP.Identity在引擎盖下面会调用
HttpContext.Authentication.SignInAsync()
它们为那些不想使用ASP.NET身份并且想自己做任何事情的人提供了方便 签名方法的第二个参数是
AuthenticationScheme
字符串
此字符串可以是:
- “持票人”
- “饼干”
- “OpenIdConnect”
- “谷歌”
- “Facebook”
- “微软”
- “推特”
如果您有其他第三方身份验证提供商,
AuthenticationScheme
字符串可以是其他内容。另外,一些身份验证提供程序(如UseCookieAuthentication
中间件)允许您指定AuthenticationScheme
我明白了。你知道为什么它什么也不回吗?或者如何使用它?要指定哪些参数等等。老实说,如果你问这个问题,那不是你的问题。这并不意味着,这是一个有趣的安全接口点,除非您完全理解它以及登录和身份验证中间件是如何结合在一起的,否则不应该使用它。有一些文档介绍了如何使用不带标识的cookie中间件,它直接使用上下文,但对于大多数人来说,这并不是你最终想要做的事情。