ControllerBase
類中的SignIn
和SignOut
方法的用途是什麼(它由Controller
類繼承)。ControllerBase中SignIn和SignOut方法的用途是什麼?
這兩種方法分別返回SignInResult
和SignOutResult
,它們都從基類ActionResult
(實現IActionResult
)繼承。
查找SignInResult
和SignOutResult
的源代碼,您會看到它們分別稱爲HttpContext.Authentication.SignInAsync()
和HttpContext.Authentication.SignOutAsync()
。
但我從來沒有見過這兩種方法在任何地方使用。如果您查看AccountController
,那麼它使用ApplicationSignInManager
登錄和註銷,而不是上述方法。
由於這些是ActionResult
,它使我相信這些將被用作控制器中操作的返回值。
比如像這樣的例子:
public IActionResult SignIn()
{
return SignIn(User, "Automatic");
}
但是,這顯然是不執行任何操作。它似乎沒有登錄用戶,它似乎沒有返回任何東西給用戶。我不知道要通過什麼參數,但是我發現User
(從控制器中的HttpContext
)。
那麼這兩種方法的目的是什麼?他們打算如何使用?
我明白了。你知道它爲什麼沒有回報嗎?或者如何使用它?要指定什麼參數等 – Fred
老實說,如果你問,這不適合你。這並不意味着它是一個有趣的安全接口點,除非您完全理解它以及登錄和身份驗證中間件如何掛在一起,否則不應使用它。有關於如何使用沒有身份的cookie中間件的文檔,它直接使用上下文,https://docs.asp.net/en/latest/security/authentication/cookie.html,但對於大多數人來說,這不是你想要最終做到。 – blowdart