【发布时间】:2020-05-15 14:44:41
【问题描述】:
我正在尝试在 ASP.Net Core 应用程序中使用 AzureAD 身份验证,并使某些控制器操作不需要用户登录。
使用 Visual Studio 2019,如果我创建一个全新的 ASP.Net Framework 应用程序并选择工作/学校帐户进行身份验证 - HomeController 将使用 Authorize 属性进行装饰。一旦我运行应用程序,我就会被重定向到 Azure 登录屏幕。如果我将 Authorize 属性从 Home 控制器的顶部移动到 Contact 操作,当我运行应用程序时,我不会重定向到登录,直到我单击 Contact 链接。这正是我所期望的。
如果我创建一个全新的 ASP.Net Core 应用程序(再次选择工作/学校帐户进行身份验证)- 并将 Authorize 属性从 Home 控制器的顶部移动到 Privacy 操作 - 我将被重定向到登录在我运行应用程序时,而不是等待我导航到隐私操作。
代码示例
这个
[Authorize]
public class HomeController : Controller
...
public IActionResult Privacy()
...
行为与此相同
public class HomeController : Controller
...
[Authorize]
public IActionResult Privacy()
...
在 ASP.Net Core 中。
1) 这两者之间的身份验证有什么不同? 2) 有没有一种简单的方法可以让 ASP.Net Core 应用程序只在点击 Authorize 属性时进行身份验证?
【问题讨论】:
标签: asp.net-core openid-connect