ASP.NET MVC。检查用户是否获得 JavaScript 授权

2023-11-25

我正在使用 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(使用前将#替换为@)

ASP.NET MVC。检查用户是否获得 JavaScript 授权 的相关文章

随机推荐

  • “删除”-恢复本机功能不适用于更改后的原型,那么怎么办?

    如果你像这样改变本机函数 window open function a b c alert 2 然后你就可以 delete window open 它会恢复原来的功能 但是 如果你像这样改变它的原型 window proto open fu
  • 从 WCF 请求中删除 ActivityId

    我在 WCF 客户端和 Java Web 服务之间遇到了一个有趣的兼容性问题 简而言之 我发现标头的生成方式导致了问题 标头中的 ActivityId 和 Action 元素以及 WCF 对自定义标头的命名空间所做的操作导致了问题 我已成功
  • 在 Android Espresso 测试中关闭警报对话框

    我已经四处寻找解决方案 但找不到 我正在创建一个 Espresso 测试 需要关闭第一次显示特定活动屏幕时出现在屏幕中间的警报对话框 对话框上没有按钮 因此用户需要单击框外的任意位置才能将其关闭 有谁知道我如何用浓缩咖啡做到这一点 我尝试单
  • 在通过电子邮件发送 WhatsApp 聊天时,如何使我的 Android 应用程序出现在应用程序选择器中?

    我有兴趣让我的应用程序出现在我使用 WhatsApp 中的 电子邮件对话 功能时显示的应用程序列表中 当使用 电子邮件对话 WhatsApp 功能登录手机时 我可以看到SEND MULTIPLEGmail 收到的意图 I ActivityM
  • JS 文件中的 PHP 常量

    我面临着一个我无法理解的问题 在插件开发过程中 我包含了一个 file js php 注册 排队 Begin Tests var templateDir
  • 将选择下拉箭头替换为 fa-icon

    我试图用 fa 图标 chevron circle down 替换选择下拉箭头 但我只能发现背景可以用 css 文件中的图像替换 我可以在选择上添加图标 但是它不可点击 如何在选择下拉列表中使用字体图标有任何帮助吗 因为你不能使用pseud
  • CTRL+C 忽略 Webbrick 服务器

    In the past I could exit my rails application launched using webbrick using CtrlC At some point in development this func
  • 检查PHP是否已编译--with-mysql [重复]

    这个问题在这里已经有答案了 可能的重复 检测php中的mysql支持 有没有一种快速的方法来以编程方式检查这个特定的 PHP 安装是否已编译为支持 MYSQL 实际上有多个支持 MySQL 的模块 mysql mysqli pdo mysq
  • Spring Boot如何使用jwt进行用户角色管理

    我正在用 spring boot 编写一个 RESTful api 我正在使用 spring boot jersey mongo db swagger spring boot security 和 jwt 我已经编写了模型 数据库请求的存储
  • Android 上的 Web 视图支持 SSL 吗?

    The WebViewandroid 上的控件 支持 SSL 吗 我正在尝试加载一个使用受信任 ssl 证书的网页 但是WebView只是白色的 有什么建议么 不是专家 只是我在网上找到的 据我了解 WebView确实支持ssl 但是 黑屏
  • NPM 不工作(找不到模块“internal/fs”-nodejs)

    更新时出现 NPM 错误 我最近更新到 Node 版本 7 x 现在 npm 不工作了 我无法定位错误 可能是由于 npm ERR Cannot find module internal fs 当我跑步时我得到以下信息sudo npm up
  • 使用 unique_ptr 进行前向声明[重复]

    这个问题在这里已经有答案了 我发现将类的前向声明与std unique ptr如下面的代码所示 它可以使用 GCC 进行编译和工作 但整个事情看起来有点奇怪 我想知道这是否是标准行为 即标准所要求的 由于当我声明时 B 不是完整类型uniq
  • Android使用支持库来支持SearchView

    这是我的代码 if Build VERSION SDK INT gt Build VERSION CODES HONEYCOMB MenuItem searchItem menu findItem R id searchMenuItem S
  • @WebServlet 注释 web.xml 欢迎文件

    我想设置 JSP JavaBeans 项目的欢迎文件 我有一个名为 Controller java 的 servlet 带有以下 WebServlet 注释 WebServlet name Controller urlPatterns lo
  • SetValue 64位机器注册表

    我想在下面的注册表路径中设置 NoModify 的值 HKEY LOCAL MACHINE SOFTWARE Microsoft Windows CurrentVersion Uninstall XXXX 我使用下面的代码 它仅适用于 X8
  • Android Studio 与 Google Play:缺少 Google Play 服务

    我使用的是 Ubuntu 14 Android Studio 0 8 6 我正在使用 Genymotion 运行应用程序 我得到的响应是 W GooglePlayServicesUtil Google Play services is mi
  • 异步 HttpModule MVC

    我有一个包含以下代码的同步 HttpModule
  • Python:无法在 Matplotlib 中渲染 Tex

    我最近将笔记本电脑升级到 Snow Leopard 将 TeX 更新到版本 3 1415926 TeX Live 2011 MacPorts 2011 5 并安装了 Python 2 7 3 所有这些安装完成后 我运行了 macport s
  • Node.js 将响应对象句柄传递给子进程

    我有一个http服务器和一个分叉的子进程 我希望父级接收请求并使用以下方式传递给分叉进程worker send 并且工作人员应该能够使用相同的响应对象处理响应并将其发送回请求者 我尝试在第二个参数中发送响应对象worker send 但它给
  • ASP.NET MVC。检查用户是否获得 JavaScript 授权

    我正在使用 ASP NET MVC Framework 3 和表单身份验证 我知道 如何在服务器端检查用户是否有权执行某些操作 使用 Authorize 并且我知道如何在操作或视图中检查这一点 使用User Identity IsAuthe