怎么设置让一个页面只有管理员角色才以访问?

谢谢好朋友 2012-03-08 10:36:06
我网站的其他页面是登录过才能访问,但是有一个usermanage.aspx,只能让拥有“admin”角色的用户访问。
我的web.config是这样配置的:

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

<location path="userManage.aspx">
<system.web>
<authorization>
<allow roles="admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>

但是这样只有用户名为admin的帐户才能访问usermanage.aspx,用户名为001但是拥有“admin”角色的帐户也不能访问,
求高手指教,错误在哪?应该怎么写?
...全文
222 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyl8781697 2012-03-08
  • 打赏
  • 举报
回复
直接在usermanage.aspx页面判断下不就行了么
bdmh 2012-03-08
  • 打赏
  • 举报
回复
<allow roles="Admins"/>
是这个吧
谢谢好朋友 2012-03-08
  • 打赏
  • 举报
回复
不好意思,是我自己的代码有问题,我把你添加角色信息的代码写错了。。。
lovebaby 2012-03-08
  • 打赏
  • 举报
回复
在global.asa中加入以下代码:

void Application_AuthenticateRequest(object sender, EventArgs e)
{
HttpContext ctx = (sender as HttpApplication).Context;

if (ctx.Request.IsAuthenticated == true) //验证过的用户才进行role的处理
{

FormsIdentity Id = (FormsIdentity)ctx.User.Identity;

FormsAuthenticationTicket Ticket = Id.Ticket; //取得身份验证票

string[] Roles = Ticket.UserData.Split(','); //将身份验证票中的role数据转成字符串数组

ctx.User = new System.Security.Principal.GenericPrincipal(Id, Roles); //将原有的Identity加上角色信息新建一个GenericPrincipal表示当前用户,这样当前用户就拥有了role信息

}

}

62,254

社区成员

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

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

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

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