为什么这个权限没有用

问题描述

protectedvoidDDlMore_SelectedIndexChanged(objectsender,EventArgse){intnum=0;stringmsg="";stringexperienceID="";SessionLoginlogin=base.Session["Login"]asSessionLogin;RegScriptscript=newRegScript(this.Page);for(inti=0;i<this.GridView1.Rows.Count;i++){stringstr9;CheckBoxbox=(CheckBox)this.GridView1.Rows[i].FindControl("CheckBox3");experienceID=this.GridView1.DataKeys[i].Value.ToString();int.Parse(newExperience().GetStatuByExperienceID(experienceID));if(box.Checked&&((str9=this.DDlMore.SelectedValue)!=null)){if(!(str9=="Lock")){if(str9=="UnLock"){gotoLabel_017C;}if(str9=="Move"){gotoLabel_0205;}if(str9=="collection"){gotoLabel_0476;}}else{this.pType=PowerType.DocumentLock;try{num++;if(login.MType!=0){if(!this.pow.HasFilePower(login.Id,experienceID,this.pType)){msg="您无权限执行此操作!";}else{newExperience().LockDocument(experienceID);msg="锁定成功!";}}else{newExperience().LockDocument(experienceID);msg="锁定成功!";}}catch(Exceptionexception){base.Response.Write("<script>alert('"+exception.Message+"');</script>");}}}continue;Label_017C:this.pType=PowerType.DocumentLock;try{num++;if(login.MType!=0){if(!this.pow.HasFilePower(login.Id,experienceID,this.pType)){msg="您无权限执行此操作!";}else{newExperience().UnLockDocument(experienceID);msg="解锁成功!";}}else{newExperience().UnLockDocument(experienceID);msg="解锁成功!";}}catch(Exceptionexception2){base.Response.Write("<script>alert('"+exception2.Message+"');</script>");}continue;Label_0205:this.pType=PowerType.DocumentMove;stringstr4=string.Empty;num++;if(login.MType!=0){for(intj=0;j<this.GridView1.Rows.Count;j++){CheckBoxbox2=(CheckBox)this.GridView1.Rows[j].FindControl("CheckBox3");stringdocId=this.GridView1.DataKeys[j].Value.ToString();if(box2.Checked&&this.pow.HasFilePower(login.Id,docId,this.pType)){str4=str4+this.GridView1.DataKeys[j].Value.ToString()+",";}}if(str4.Length>1){str4=str4.Substring(0,str4.Length-1);}if(str4!=string.Empty){stringurl=string.Concat(newobject[]{"../Experience/Experienc_Move.aspx?catalogid=",this.HiddenField1.Value,"&catalogType=",1,"&ExperienceID=",str4});base.Response.Redirect(url);}else{msg="您无法移动所选文件!";}}else{experienceID=string.Empty;for(intk=0;k<this.GridView1.Rows.Count;k++){CheckBoxbox3=(CheckBox)this.GridView1.Rows[k].FindControl("CheckBox3");if(box3.Checked){experienceID=experienceID+this.GridView1.DataKeys[k].Value.ToString()+",";}}if(str4.Length>1){str4=str4.Substring(0,str4.Length-1);}if(str4!=string.Empty){stringstr7=string.Concat(newobject[]{"../Experience/Experienc_Move.aspx?catalogid=",this.HiddenField1.Value,"&catalogType=",1,"&ExperienceID=",str4});base.Response.Redirect(str7);}else{msg="您无法移动所选文件!";}}continue;Label_0476:try{num++;stringid=login.Id;msg="收藏成功!";CollectDocmentcollect=newCollectDocment();collect.Id=collect.CreateId();collect.CollectTime=DateTime.Now;collect.UserId=login.Id;collect.DocId=experienceID;collect.DocType=1;collect.Collect(collect);}catch(Exceptionexception3){base.Response.Write("<script>alert('"+exception3.Message+"');</script>");}}if(num==0){MessageBox.Show(this,"您还没有选择任何文档记录!");}else{MessageBox.Show(this,msg);}script.RegisterJS("reloadleft","parent.leftFrame.location.href='"+"../Experience/Experienc_Left.aspx"+"';");this.BindExperience();script.RegisterJS("reloadthis","window.location.href='Experience_Right.aspx?catalogId="+this.HiddenField1.Value+"';");}上面这段代码,为什么不同的ID也可以进行锁定和删除。希望给点提示啊,谢谢了

解决方案

解决方案二:
protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse){try{stringexperienceID=this.GridView1.DataKeys[e.RowIndex].Value.ToString();this.s=base.Session["Login"]asSessionLogin;this.pType=PowerType.DocumentRemove;newExperience().GetCatalogIDByExperienceID(experienceID);stringstatuByExperienceID=newExperience().GetStatuByExperienceID(experienceID);if(this.s.MType!=0){if(!this.pow.HasFilePower(this.s.Id,experienceID,this.pType)){MessageBox.myShow(this,"delete","您无权限执行此操作!");}elseif(statuByExperienceID=="0"){if(newExperience().DeleteExperience(experienceID)){MessageBox.myShow(this,"delete2","删除成功!");}else{MessageBox.myShow(this,"delete3","删除失败!");}}else{MessageBox.myShow(this,"edit","文档已锁定!");}}elseif(newExperience().DeleteExperience(experienceID)){MessageBox.myShow(this,"delete2","删除成功!");}else{MessageBox.myShow(this,"delete3","删除失败!");}this.BindExperience();}catch(Exception){MessageBox.myShow(this,"exec","删除失败!");}}
解决方案三:
这能看出来什么,自己的逻辑自己加断点一步一步的调试呗。
解决方案四:
不要用goto,用switch{case}还有,代码太多,关键代码找不到在哪里你在哪里判断的某个id可以执行什么权限??
解决方案五:
一大堆代码,没有注释我宁愿你不要放代码,只把关键的注释放出来,看逻辑哪里有错误
解决方案六:
我试了,你看我在权限时,是当前登陆用户,并且是创建当前文档的人都正确时,才能删除或解锁该文件。可是现在所有人都能对该文件进行解锁和删除啊
解决方案七:
我就是想知道,我定义的权限判定是不是有问题。这段代码就是对文档的解锁和删除进行判断。如果是登陆者,并且是创建文档的人if(!this.pow.HasFilePower(this.s.Id,experienceID,this.pType)),那么就可以进行操作,不过现在成了只要是登陆者就可以删除和解锁
解决方案八:
每一项messagebox后面加上return否则对话框是弹出了,可是最后的this.BindExperience();还是要执行
解决方案:
如果需要return的地方太多你可以在最开始定义个bool变量,然后在if里给它赋值最后执行语句的时候判断这个变量
解决方案:
是这个原因吗?我试一试、非常感谢
解决方案:
但是我觉得这个return可写可不写吧。

时间: 2024-11-08 20:20:26

为什么这个权限没有用的相关文章

无internet访问权限解决办法

再次诅咒万恶的协同拨号... 为了突破协同拨号器的限制.寝室网络采用wifi共享方式共享网络带宽.但是有windows 7的系统链接到共享wifi时出现无internet访问权限,或者访问受限等问题无法连接成功. 查看网络驱动,驱动正常. ipconfig查询IP地址,发现无线网卡IP地址已经存在,但是网关没有分配.更改不同的网络,发现无论是CMCC还是共享wifi,IP地址始终不变. 查看网络链接中的设备,发现只有发出包,没有接受到包.禁用无关网络设备,去掉无线设备中一些无用的协议,依然没有用

Web服务器防木马及漏洞攻击的权限配置

从系统安装到用户安全设置.系统权限设置三方面进行讲解Web服务器防木马及漏洞攻击的权限配置,希望通过这篇文章可以让你的服务器更加安全. 一.系统的安装   1.按照Windows2003安装光盘的提示安装,默认情况下2003没有把IIS6.0安装在系统里面. 2.IIS6.0的安装 以下为引用的内容: 开始菜单->控制面板->添加或删除程序->添加/删除Windows组件 应用程序 ---ASP.NET(可选) --启用网络 COM+ 访问(必选) --Internet 信息服务(IIS

权限设计及算法(PHPE)

设计|算法 权限设计 大概有这几种模式:用户+组+角色+权限用户+组+权限用户+角色+权限用户+权限 最近看了别人的设计方法,大多以"整数"来表示权限值,如添加.浏览.删除和修改,分别用1.2.4.8这几个整数来代替,不过,各人的做法有所不同,举例如下: 1.用2的n次幂组成权限值的集合,如1.2.4.8.16...,某用户的权限值为其子集中的整数之和,如 7=1+2+4,5=1+4.如果要从数据库检索包含某几种权限的用户,则先把这几种权限值相加,假设和为k,然后select * fr

Windows 2000中的NTFS权限设置

WIN2000中添加了一个与WIN98及以前的WINDOWS版本不同的一个特性,那就是NTFS权限,由于有了这个特性,那么在WIN2000中就可以实现文件夹及文件级别的安全控制,这不同于WIN98中的帐号和密码,在WIN98中,只要知道了帐号和密码,那么就可以对计算机完全控制,而无法实现对某个帐户只允许读取某个文件夹或者某个文件的功能.而在WIN2000中,完全可以完美的实现这一点.OK,Let's go! 首先,先说一下要实现该功能的前提条件,那就是你的分区必须是NTFS分区,如果是FAT或者

Win8系统取得超级管理员权限的方法

使用Win8在找开系统文件夹是经常提示:无法访问--,拒绝访问.就是没有超级管理员权限所致,取得Win8超级管理员权限很容易,导入一个注册表文件就可以实现,并且操作简单. 不管是使用Win8还是Win7,在打开C盘的一些文件夹时,经常会遇到无法访问的情况,以致于想删除已经确认没有用的文件时删除不了.Win7下很好办,各种工具皆可实现在右键菜单添加取得管理员权限按钮.现在主要介绍Win8下如何为鼠标右键菜单添加取得管理员权限选项. 新建一个记事本将下面的代码Copy进去保存,记事本名字无所谓,记住

Win7怎么解决电脑无线有限的访问权限

  1.开始连接无线网络的时候电脑能正常的上网,但是过一会之后就开始显示"有限的访问权限". 2.接着你可能会去尝试360的断网急救箱,确实如果是DHCP问题的一下就修复了. 3.如果用了360断网急救箱还是没有用的话,我估计是无线网卡和无线路由模式的兼容问题了.进入"设备管理器". 4.进入"设备管理器"之后找到"网络适配器",在"网络适配"下面找到无线网络,并进入设置.下图所示,会英文的朋友应该知道是哪

广告系统总结之权限管理设计与结构设计

免费广告系统多种多样,他们背后的共同点有哪些?哪些系统设计合理? 在总结了广告系统设计中<互联网精准广告定向技术>之后,作者又继续深入研究了广告系统设计中的权限管理设计以及结构设计,并从广告端与网站端两方面,进行了详细的阐述. 广告系统的权限管理设计 广告系统设计中,除了广告定向技术的运用以及广告投放流程的设计外,最复杂的就是权限管理的设计.不同于其他行业,广告公司或者媒体公司日常业务比较复杂,从职能来讲,包括销售.客户服务.客户执行.创意设计.策略策划.媒介计划.媒介执行.合同管理.财务审核

ie 8-ActiveX只能在管理员权限下才能运行

问题描述 ActiveX只能在管理员权限下才能运行 开发了一个AX控件,在IE以管理员权限打开的时候能够正常运行.但是如果没有用管理员权限打开IE就不能执行.怎么才能在非管理员权限下是AX控件正常运行呢? 解决方案 不要访问注册表的current_user以外的键,不要访问除了用户自己文档以外的文件路径,不要试图启动应用程序,等等. 解决方案二: 打开"Internet选项"窗口→选择"安全"选项卡→点击上部长方框中的Internet图标(一个地球的图标)→再按右下

java-基础-权限

(1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类.接口.异常等.它往往用于对外的情况,也就是对象或类对外的一种接口的形式. (2)对于protected修饰符,它主要的作用就是用来保护子类的.它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西. (3)对于default来说,有点的时候也成为friendly(友员),它是针对本包访问而设计的,任何处于本包下的类.接口.异常等,都可以相互访问,即使是父类没有用prote