elw*_*wyn 26 asp.net-mvc authorization forms-authentication
通常我保护我的动作,[Authorize]
但这次我需要检查用户是否在行动中获得授权.
例如
if(userIsAuthorized) {
//do stuff
}
else {
//return to login page
}
Run Code Online (Sandbox Code Playgroud)
我相信我正在使用'表单身份验证'
这个问题与此类似,但没有一个答案似乎有效.
编辑:我已经做了一些挖掘 - 似乎我在一个Action上断点[Authorize]
,User.Identity已设置,但是在没有它的Actions上,User.Identity为空,即使我已登录
Aar*_*ght 46
如果您只想知道用户是否已登录:
if (User.Identity.IsAuthenticated) { ... }
Run Code Online (Sandbox Code Playgroud)
如果您尝试执行任何特定于角色的操作:
if (User.IsInRole("Administrators")) { ... }
Run Code Online (Sandbox Code Playgroud)
该User
实例是Controller
该类的公共属性,因此您始终可以从您编写的Controller访问它.如果没有用户登录,你应该有一个GenericPrincipal
对User
和GenericIdentity
的User.Identity
,所以不用担心检查空值.
Request.IsAuthenticated
应该适合你想要做的事情.