NFine中权限判断出错的问题

问题描述:登录后点击栏目一,弹出了窗口一,再点击栏目二,弹出了窗口二,然后再点击窗口一,再执行窗口一中的操作时,发现已没有任何权限,调试后发现在HandlerAuthorizeAttribute这个类中

  1. private bool ActionAuthorize(ActionExecutingContext filterContext)
  2. {
  3. var operatorProvider = OperatorProvider.Provider.GetCurrent();
  4. var roleId = operatorProvider.RoleId;
  5. var moduleId = WebHelper.GetCookie("nfine_currentmoduleid");
  6. var action = HttpContext.Current.Request.ServerVariables["SCRIPT_NAME"].ToString();
  7. return new RoleAuthorizeApp().ActionValidate(roleId, moduleId, action);
  8. }

moduleId这个值取的不对,又转到前台indextab.js中

  1. addTab: function () {
  2. $("#header-nav>ul>li.open").removeClass("open");
  3. var dataId = $(this).attr(‘data-id‘);
  4. if (dataId != "") {
  5. top.$.cookie(‘nfine_currentmoduleid‘, dataId, { path: "/" });
  6. }
  7. var dataUrl = $(this).attr(‘href‘);
  8. var menuName = $.trim($(this).text());
  9. var flag = true;

发现在这里对cookie(‘nfine_currentmoduleid‘)赋值,接着查看点击窗口选项卡的事件

  1. activeTab: function () {
  2. var currentId = $(this).data(‘id‘);
  3. if (!$(this).hasClass(‘active‘)) {
  4. $(‘.mainContent .NFine_iframe‘).each(function () {
  5. if ($(this).data(‘id‘) == currentId) {
  6. $(this).show().siblings(‘.NFine_iframe‘).hide();
  7. return false;
  8. }
  9. });
  10. $(this).addClass(‘active‘).siblings(‘.menuTab‘).removeClass(‘active‘);
  11. $.nfinetab.scrollToTab(this);
  12. }
  13. },

发现并没有对cookie的赋值操作,所以找到了问题所在,但是如何传递该参数,尝试后的解决办法是回到addTab方法中

  1. addTab: function () {
  2. $("#header-nav>ul>li.open").removeClass("open");
  3. var dataId = $(this).attr(‘data-id‘);
  4. if (dataId != "") {
  5. top.$.cookie(‘nfine_currentmoduleid‘, dataId, { path: "/" });
  6. }
  7. var dataUrl = $(this).attr(‘href‘);
  8. var menuName = $.trim($(this).text());
  9. var flag = true;
  10. if (dataUrl == undefined || $.trim(dataUrl).length == 0) {
  11. return false;
  12. }
  13. $(‘.menuTab‘).each(function () {
  14. if ($(this).data(‘id‘) == dataUrl) {
  15. if (!$(this).hasClass(‘active‘)) {
  16. $(this).addClass(‘active‘).siblings(‘.menuTab‘).removeClass(‘active‘);
  17. $.nfinetab.scrollToTab(this);
  18. $(‘.mainContent .NFine_iframe‘).each(function () {
  19. if ($(this).data(‘id‘) == dataUrl) {
  20. $(this).show().siblings(‘.NFine_iframe‘).hide();
  21. return false;
  22. }
  23. });
  24. }
  25. flag = false;
  26. return false;
  27. }
  28. });
  29. if (flag) {
  30. var str = ‘<a href="javascript:;" class="active menuTab" data-id="‘ + dataUrl + ‘" data-realid="‘ + dataId + ‘">‘ + menuName + <i class="fa fa-remove"></i></a>‘;
  31. $(‘.menuTab‘).removeClass(‘active‘);
  32. var str1 = ‘<iframe class="NFine_iframe" id="iframe‘ + dataId + ‘" name="iframe‘ + dataId + ‘" width="100%" height="100%" src="‘ + dataUrl + ‘" frameborder="0" data-id="‘ + dataUrl + ‘" seamless></iframe>‘;
  33. $(‘.mainContent‘).find(‘iframe.NFine_iframe‘).hide();
  34. $(‘.mainContent‘).append(str1);
  35. $.loading(true);
  36. $(‘.mainContent iframe:visible‘).load(function () {
  37. $.loading(false);
  38. });
  39. $(‘.menuTabs .page-tabs-content‘).append(str);
  40. $.nfinetab.scrollToTab($(‘.menuTab.active‘));
  41. }
  42. return false;
  43. },

在新建Tab的时候,增加一个参数 data-realid,再回到激活事件中,直接为cookie赋值就大功告成了。

  1. activeTab: function () {
  2. var currentId = $(this).data(‘id‘);
  3. if (!$(this).hasClass(‘active‘)) {
  4. top.$.cookie(‘nfine_currentmoduleid‘, $(this).data(‘realid‘), { path: "/" });
  5. $(‘.mainContent .NFine_iframe‘).each(function () {
  6. if ($(this).data(‘id‘) == currentId) {
  7. $(this).show().siblings(‘.NFine_iframe‘).hide();
  8. return false;
  9. }
  10. });
  11. $(this).addClass(‘active‘).siblings(‘.menuTab‘).removeClass(‘active‘);
  12. $.nfinetab.scrollToTab(this);
  13. }
  14. },

NFine中权限判断出错的问题的更多相关文章

  1. android应用中增加权限判断

    android6.0系统允许用户管理应用权限,可以关闭/打开权限. 所以需要在APP中增加权限判断,以免用户关闭相应权限后,APP运行异常. 以MMS为例,在系统设置——应用——MMS——权限——&g ...

  2. spring boot+freemarker+spring security标签权限判断

    spring boot+freemarker+spring security标签权限判断 SpringBoot+SpringSecurity+Freemarker项目中在页面上使用security标签 ...

  3. 【ASP.NET】ASP.NET中权限验证使用OnAuthorization实现

    在项目开发中,通常我们都会涉及到用户登录才能访问的网页,比如购物网站,我们浏览商品,添加购物车(以前开发的时候在这里就需要登录用户,但是现在有了缓存的实现,这里可以将商品加入缓存,等到结账的时候再登录 ...

  4. 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程

    简述C#中IO的应用   在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.I ...

  5. Asp.net 基于Cookie简易的权限判断

    基于Cookie简易的权限判断代码,需要的朋友可以参考下. 写入Cookie页面,创建cookie后,设置cookie属性,并添加到Response.Cookies中读取cookie,利用cookie ...

  6. 修改struts2自定义标签的源代码,在原有基础上增加功能(用于OA项目权限判断,是否显示某个权限)

    OA项目在做权限判断时  原始方式: 现在完成的功能 :通过改变struts2自定标签源代码   在原有的基础上  增加判断权限的功能  而页面上使用标签的方式 还是下图 步骤: 打开文件 搜索< ...

  7. iOS 权限判断 跳转对应设置界面

    相机权限 1.1 使用说明 在合适的地方导入#import <AVFoundation/AVFoundation.h> 使用AVAuthorizationStatus类获取当前权限状态 在 ...

  8. axios实现类似form传值的格式,以及实现拦截器功能,response拦截实现权限判断

    import axios from 'axios' import Qs from 'qs' // 超时设置 const service = axios.create({ transformReques ...

  9. 【跟着子迟品 underscore】JavaScript 中如何判断两个元素是否 "相同"

    Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对 ...

随机推荐

  1. c# Castle Windsor简单例子

    Windsor是Castle的IOC框架.需要用到两个dll(Castle.Core.dll和Castle.Windsor.dll). 1.接口以及接口实现类: public interface IT ...

  2. Failed to load driver class com.mysql.jdbc.Driver from HikariConfig class classloader sun.misc.Launcher$AppClassLoader@18b4aac2

    1.错误日志 Failed to load driver class com.mysql.jdbc.Driver from HikariConfig class classloader sun.mis ...

  3. java框架之MyBatis(1)-入门&动态代理开发

    前言 学MyBatis的原因 1.目前最主流的持久层框架为 Hibernate 与 MyBatis,而且国内公司目前使用 Mybatis 的要比 Hibernate 要多. 2.Hibernate 学 ...

  4. java之beanutils使用

    介绍 BeanUtils是Apache Commons组件的成员之一, 主要用于简化JavaBean封装数据的操作. ​ 点击下载依赖 jar 包 使用 有如下 javabean : package ...

  5. Kafka实践1--Producer

    一.Kafka设计原理参考: http://blog.csdn.net/suifeng3051/article/details/48053965?locationNum=2 http://www.cn ...

  6. Clone of COCO API

    Clone of COCO API - Dataset @ http://cocodataset.org/ - with changes to support Windows build and py ...

  7. JavaScript 数组插入元素并排序

    1.插入类排序 插入类排序的思想是:在一个已排好序的序列区内,对待排序的无序序列中的记录逐个进行处理,每一步都讲待排序的记录和已排好的序列中的记录进行比较,然后有序的插入到该序列中,直到所有待排序的记 ...

  8. Django的安装

    ##pip pip是Python的包管理工具,用于快速安装配置所需要的拓展包,能够很好的解决包之间的依赖关系 当前ubuntu 系统上有两个Python环境,使用pip3 是指定Python3的环境 ...

  9. crontab定时

    yum install -y vixie-cron --安装定时服务 每分钟更新一次商品crontab -e* * * * * /usr/bin/curl http://test.wadao.com/ ...

  10. linux C access

    [1]作用 确定文件的访问权限 [2]头文件 #include <unistd.h> [3]函数定义 int access(const char * pathname,  int mode ...