forms身份验证,如何动态的设置可以由那些角色和用户访问?

zhmvb 2010-04-26 04:07:28
如题。
...全文
165 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jshi123 2010-04-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhmvb 的回复:]

能说的详细点吗?

<location path ="users">
<system.web>
<authorization>
<deny users ="?"/>
</authorization>
……
[/Quote]

用下面的代码可以实现等价效果

System.Configuration.Configuration configuration = WebConfigurationManager.OpenWebConfiguration("~", null , "users");
AuthorizationSection authorization = (AuthorizationSection)configuration.GetSection("system.web/authorization");
AuthorizationRule rule = new AuthorizationRule(AuthorizationRuleAction.Deny);
rule.Users.Add("?");
authorization.Rules.Add(rule);
configuration.Save();
sunshine_anycall 2010-04-27
  • 打赏
  • 举报
回复
要不就自己写权限的一套东西控制
sunshine_anycall 2010-04-27
  • 打赏
  • 举报
回复
用asp.net自带的一个配置工具就可以实现
jiezi316 2010-04-27
  • 打赏
  • 举报
回复
如果你想操作WEB.CONFIG,就别想了哈

你可以自己来实现1个验证,类似于COOKIE的。
我记得,FORM验证里有方法获取登录的用户的相关信息的。你再做判断吧。
也可基于接口重写验证,不过这个太麻烦了。
duxj007 2010-04-26
  • 打赏
  • 举报
回复
在页面的PAGE_LOAD的事件里面做判断,如果满足就可以访问,不满足到首页或登陆页面
zhmvb 2010-04-26
  • 打赏
  • 举报
回复
能说的详细点吗?

<location path ="users">
<system.web>
<authorization>
<deny users ="?"/>
</authorization>
</system.web>
</location>

想实现在程序运行时动态创建与上面这段配置效果相同的功能,如何实现?
honkerhero 2010-04-26
  • 打赏
  • 举报
回复
RBAC - 基于角色的权限控制
porschev 2010-04-26
  • 打赏
  • 举报
回复
加User表加权限字段
Jony07 2010-04-26
  • 打赏
  • 举报
回复
应该得要角色和用户的一个属性来判断吧,假如角色和用户满足,就显示并允许访问!
转自:http://www.yongfa365.com/item/ASP.net-Forms-Demo.html 如果您研究过这个问题,那么,你一定会比较郁闷,现在网上流行的那个,国产的,里面有点问题,反正我一从昨天研究到现在 2008年12月17日 23时59分10秒,才搞明白是怎么回事,你说我们这些人容易吗!如果只是为了完成任务,我用ASP就OK了,为什么还要用ASP.net,如果我们用.net时还用ASP的思路也得了,为什么还要研究ASP.net提供的东西。呵呵,不为什么,喜欢,我所做的正是我想做的,我不是为了完成一个任务,而是为了提升自己。总之一句话:我的目标是简化生活,技术高了,就不怕出错了,天塌下来也能给他顶回去。 言归正传,首先,贴上人家外国人的地址:http://www.codeproject.com/KB/web-security/formsroleauth.aspx 有兴趣的可以看看,没兴趣的直接下我的Demo,有点兴趣的可以看下国人处理时有问题的地方: Global.asax protected void Application_AuthenticateRequest(Object sender, EventArgs e) { if (HttpContext.Current.User != null)//如果当前的http信息中存在用户信息 { if (HttpContext.Current.User.Identity.IsAuthenticated)//如果当前用户的身份已经通过了验证 { if (HttpContext.Current.User.Identity is FormsIdentity) { //如果当前用户身份是FormsIdentity类即窗体验证类,此类有个属性能够访问当前用户的验证票 FormsIdentity fi = (FormsIdentity)HttpContext.Current.User.Identity;//创建个FormsIdentity类,用他来访问当前用户的验证票 //获得用户的验证票 FormsAuthenticationTicket ticket = fi.Ticket; //从验证票中获得用户数据也就是角色数据 string userData = ticket.UserData; //把用户数据用,分解成角色数组 string[] roles = userData.Split(','); //重写当前用户信息,就是把角色信息也加入到用户信息中 HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(fi, roles); } } } } 最后,贴上国人的地址,其实文章写的不错,只是这个事件没写对,其它的都不错,地址是:Asp.net中基于Forms验证的角色验证授权

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧