【发布时间】:2018-09-24 13:24:01
【问题描述】:
所以我正在 .NET Core 2.1 中开发一个 MVC 项目。 我使用来自 ASP.NET Identity 的内置 Cookie 身份验证。
当然,我的控制器内所有需要授权的端点都用[Authorize] 注释。但是,我的视图(返回的)是否也需要一种注释形式来定义它们只能被授权的用户访问?如果是这样,你会怎么做?
【问题讨论】:
-
仅当您(可能)在授权和非授权操作之间共享视图时。否则,除非您获得授权,否则无法联系到他们,因此他们的用户身份验证状态不需要任何进一步的验证。
-
尽管如此。里面不应该有什么逻辑。仅重用控制器准备的数据。
-
好的,但是例如:从注销端点调用 LogOutAsync() 后,我仍然可以使用浏览器中的返回按钮再次访问该视图。还是这个问题与我的问题无关?
-
你的意思是浏览器的“返回”按钮?可能是您的浏览器缓存了该页面。如果您按 F5 重新加载页面,那么 - 如果您的应用程序正常工作 - 它可能会提示您重新登录。(PS 视图本身只是服务器执行控制器操作方法时生成的一些 HTML - 它您提到的都已实现了适当的授权代码。没有其他方法可以让应用程序生成该 HTML,因此视图与控制器方法具有单独授权的概念实际上没有任何意义。)
标签: c# .net asp.net-core-mvc asp.net-identity