我正在使用 ASP.NET MVC Framework 3 和表单身份验证。我知道,如何在服务器端检查用户是否有权执行某些操作(使用[Authorize]
)并且我知道如何在操作或视图中检查这一点(使用User.Identity.IsAuthenticated
或“用户”的其他成员)。
我想做的 - 是定义一些 JavaScript 代码,这些代码的执行方式会有所不同,具体取决于用户是否获得授权。
考虑页面上的这样的脚本:
<script>
function Foo(){
if(userAuthorized)
alert("You\'re in the system");
} else {
alert("You\'re not authorized");
}
<script>
功能Foo()
由某些事件触发,例如点击。我希望能够在客户端检查用户是否获得授权。
我想出的最佳解决方案是在视图中实际渲染全局变量初始化。像这样:
@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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)