Forms身份验证,为什么后,所有用户都进不来了?

sWinZ 2007-05-12 12:39:14
Forms身份验证,

为什么<allow roles="Administrators" /><deny users="*" />后,

(<allow roles="Administrators" />已经放在><deny users="*" />的前面)

所有用户都进不来了?

MSDN中意思,这样可以只让Administrators角色中的用户进来,可设置后所有人都进不来了
...全文
1320 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianshao810 2009-12-25
  • 打赏
  • 举报
回复
谢谢
rononwang 2007-05-12
  • 打赏
  • 举报
回复
* 代表全部~
lxm174 2007-05-12
  • 打赏
  • 举报
回复
我也遇到过类似的问题,现在忘了哈哈
hyl8218 2007-05-12
  • 打赏
  • 举报
回复
我被这个问题郁闷过一个星期。。。
sWinZ 2007-05-12
  • 打赏
  • 举报
回复
hyl8218(openSoul)还是你厉害 分少 见谅 全给你了
sWinZ 2007-05-12
  • 打赏
  • 举报
回复
发现了问题 是因为<allow roles="Administrators" />没起作用,但我在页中用User.IsInRole( "Administrators" )返回的却是true
hyl8218 2007-05-12
  • 打赏
  • 举报
回复
Application_PostAuthenticateRequest(Object sender, EventArgs e)
把授权的代码放到这个时间里面,我以前和你一样用Application_AuthorizeRequest,怎么都不对!
sWinZ 2007-05-12
  • 打赏
  • 举报
回复
登陆无验证 硬编码在项目中 只是为了测试forms模式的验证
xmduane 2007-05-12
  • 打赏
  • 举报
回复
是不是登陆验证的问题。。。
sWinZ 2007-05-12
  • 打赏
  • 举报
回复
MSDN中说可以是什么意思呢?
soonsnipe 2007-05-12
  • 打赏
  • 举报
回复
allow放在前面也不行, "*" 代表阻止所有用户访问
一般是防止匿名登陆,应该<deny users="?" />
sWinZ 2007-05-12
  • 打赏
  • 举报
回复
照http://dev.csdn.net/article/18/18958.shtm做的
sWinZ 2007-05-12
  • 打赏
  • 举报
回复
完全确认

调试跟到Application_AuthorizeRequest中

看了httpContext.User = new System.Security.Principal.GenericPrincipal( formsIdentity, Roles );中的Roles 没有错
weizhuangzhi 2007-05-12
  • 打赏
  • 举报
回复
要确认你登录后的用户的角色已经是Administrator
sWinZ 2007-05-12
  • 打赏
  • 举报
回复
...LS的先看看help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.NETDEVFX.v20.chs/dv_ASPNETgenref/html/2d3d9bf6-f914-4c30-ad03-32eea98fa612.htm吧

我感觉你没明白我在说什么
magicevy 2007-05-12
  • 打赏
  • 举报
回复
<appSettings>
<add key="strConnection" value="server=(local);database=DB;Persist Security Info=True;Password=;User ID=sa;" />
<add key="Manager" value="admin" />
</appSettings>



admin为用户表里的字段名,这样就把admin设置成管理员
sWinZ 2007-05-12
  • 打赏
  • 举报
回复
<allow roles="Administrators" /><deny users="?" />不行

这么做,只要通过了验证的用户,不管用户属于什么角色都能进去了
sWinZ 2007-05-12
  • 打赏
  • 举报
回复
我网站根目录下的Web.config:

<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<compilation debug="true"/>
<authentication mode="Forms">
<forms name=".ASPXFORMSAUTH" loginUrl="Login.aspx"/>
</authentication>
</system.web>
</configuration>

网站有一个Admin文件夹,此文件夹下还有一个Web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<authorization>
<allow roles="Administrators" />
<deny users="*" />
</authorization>
</system.web>
</configuration>

grady.lu 2007-05-12
  • 打赏
  • 举报
回复
<allow roles="Administrators" /><deny users="?" />
sWinZ 2007-05-12
  • 打赏
  • 举报
回复
我知道*代表全部

下面引用MSDN2005原文(ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.NETDEVFX.v20.chs/dv_ASPNETgenref/html/2d3d9bf6-f914-4c30-ad03-32eea98fa612.htm):

下面的代码示例演示如何允许所有 Admins 角色成员进行访问以及如何拒绝所有 users 角色成员进行访问。

复制代码
<configuration>
<system.web>
<authorization>
<allow roles="Admins"/>
<deny users="*"/>
</authorization>
</system.web>
</configuration>


62,046

社区成员

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

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

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

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