通常我用 [Authorize]
保护我的操作但这次我需要检查用户是否在操作中获得授权。
例如
if(userIsAuthorized) {
//do stuff
}
else {
//return to login page
}
我相信我正在使用“表单例份验证”
这个问题有点类似于 this但给出的答案似乎都不起作用。
编辑:我做了更多的挖掘——似乎如果我在一个具有
[Authorize]
的操作上设置断点, User.Identity 已设置,但在没有它的 Actions 上,User.Identity 为空,即使我已登录
最佳答案
如果您只想知道用户是否已登录:
if (User.Identity.IsAuthenticated) { ... }
如果您尝试执行任何特定于角色的操作:
if (User.IsInRole("Administrators")) { ... }
User
instance 是 Controller
的公共(public)属性类,因此您始终可以从您编写的 Controller 访问它。如果没有用户登录,您应该有一个 GenericPrincipal
对于User
和 GenericIdentity
对于User.Identity
,所以不用担心检查空值。
关于asp.net-mvc - 如何检查用户是否在 Action 内获得授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2204766/