请大家帮我想一个办法 回make1111,如果这样的话,当一个用户正在输入数据的时候,突然这样 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 反正客户每次操作都要回送表单客户的权限还是在每次提交请求的时候在服务器端判断比较好这样管理员更新权限之后,客户的第一次回送表单,新的权限就能生效如果放到session里面,只要session不过期,客户始终拥有相同的权限这样设计我觉得不是很科学我觉得可以设计一个身份校验的基类,由需要身份校验的页面来继承在这个基类里面进行身份校验把每个页面,或者几个页面组成的小功能模块都加上表单号码身份验证类接受表单号码进行校验这样,页面现实的时候,校验已经完成如果没有权限,直接到航道错误页面个人意见,仅供参考 在Global.asax中的Application_AuthenticateRequest事件处理器中创建用户对象,实际上你可以创建一个Principal对象(或者实现了IPrincipal接口的对象),然后把这个对象指定给aps.net内建的user属性即可。也就是说如果有页面需要权限,那么这个事件就会激活,然后从数据库读取有关信息,刷新User属性。User属性本身就是IPincipal接口的对象。 尊敬的niwalker: 能不能贴一点代码给小弟看一下。 复杂了,一般来说管理员修改某个用户的权限是由用户提出的,即使用户不知道这个事情,程序中完全可以加上强制重新登陆的验证,即如果该用户权限被修改后将一个标志位置位,用户在继续操作时进行强制验证。另外Session最好只存储UserName,然后在一套权限表中通过Session的UserName进行验证 以下是Grobal.asax中的代码,这里使用的是GenericPrincipal的对象,你可以从IPrincipal接口派生你自己的Principal来代替这个GenericPrincipal:protected void Application_AuthenticateRequest(Object sender, EventArgs e){ if(Context.Request.IsAuthenticated) { String[] Roles={"Role1","Role2","Role3"}; //可以从数据库中提取 Context.User=new GenericPrincipal(Context.User.Identity,Roles); }}你再也不需要在每个需要授权的页面去写权限验证了(就象楼上说的什么Session),你要做的一件事情就是在Web.config文件中设置每个页面允许访问的角色,至于如何设置,参见有关基于Forms角色验证的资料。以上的代码是你要求的"一点点代码",希望对你有帮助。 我想建一个asp.net网站 后台数据库选择? 数据存储过 添加 删除 修改? 关于margin在ff和ie中的兼容问题 帮帮忙 小问题 谢谢 为什么在生成网站的时候DLL总是被换成旧的版本 数据库连接问题吗? DataGrid问题? 服务器端操作完后,需要用js问题 请问如何用FORM验证保护HTML静态页面? 哪位gg告诉我一个什么软件可以识别图片中的文字成为word格式? mvc4中viewdata传值的小问题 dropdownlist的问题
客户的权限还是在每次提交请求的时候在服务器端判断比较好
这样管理员更新权限之后,客户的第一次回送表单,新的权限就能生效
如果放到session里面,只要session不过期,客户始终拥有相同的权限
这样设计我觉得不是很科学我觉得可以设计一个身份校验的基类,由需要身份校验的页面来继承
在这个基类里面进行身份校验
把每个页面,或者几个页面组成的小功能模块都加上表单号码
身份验证类接受表单号码进行校验
这样,页面现实的时候,校验已经完成
如果没有权限,直接到航道错误页面
个人意见,仅供参考
能不能贴一点代码给小弟看一下。
另外Session最好只存储UserName,然后在一套权限表中通过Session的UserName进行验证
{
if(Context.Request.IsAuthenticated)
{
String[] Roles={"Role1","Role2","Role3"}; //可以从数据库中提取
Context.User=new GenericPrincipal(Context.User.Identity,Roles);
}
}你再也不需要在每个需要授权的页面去写权限验证了(就象楼上说的什么Session),你要做的一件事情就是在Web.config文件中设置每个页面允许访问的角色,至于如何设置,参见有关基于Forms角色验证的资料。
以上的代码是你要求的"一点点代码",希望对你有帮助。