我正在使用ASP.NET MVC Framework 3和表单例份验证。我知道如何在服务器端检查用户是否有权执行某些操作(使用[Authorize]
),并且我知道如何在操作或 View (使用User.Identity.IsAuthenticated
或其他“用户”成员)中检查此操作。
我正在尝试做的-定义一些JavaScript代码,具体取决于用户是否被授权,这些代码将以不同的方式执行。
考虑页面上的此类脚本:
<script>
function Foo(){
if(userAuthorized)
alert("You\'re in the system");
} else {
alert("You\'re not authorized");
}
<script>
函数
Foo()
是由某些事件(例如点击)触发的。我希望能够在客户端检查用户是否被授权。我想出的最好的解决方案是在 View 中实际呈现全局变量的初始化。像这样:
@if(User.Identity.IsAuthenticated)
{
<script>
var userAuthorized = true;
</script>
}
else
{
<script>
var userAuthorized = false;
</script>
}
但是在我看来,这并不是一个好方法。还有其他方法吗?
提前致谢。
PS:这是一个可用性问题,当然我正在服务器上进行必要的检查。
最佳答案
我喜欢@Gaby的评论中的想法,但由于我对您的项目不了解,因此我不确定这是否可行。
至少您可以通过以下方式简化代码:
<script>
var userAuthorized = @User.Identity.IsAuthenticated.ToString().ToLower();
</script>