关于权限问题,我也不知道是iis 设置还是程序的问题

fornothing 2003-10-19 03:52:28
起初程序是很正常的
然后我试着给他加forms 身份验证。
<authentication mode="Forms">
<forms name="MyForms" loginUrl="/test/WebForm3.aspx" protection="All">
</forms>
</authentication>
<authorization>
<allow users="administrator" />
<deny user="?" />
</authorization>

其中Webform3是个登入页,只是做简单的字符判断就跳转到webform2。aspx
当我输入正确的字符时,进行了正常的跳转。但是当我通过webform2跳到其他页面的时候,跳出一个对话框,让我输入网络密码,用户名,密码,域名,我把我的管理员账号密码,和机器名输进去以后,没有任何反应!!!

点取消,提示访问被拒绝。

但是当我把 <allow users="administrator" />
<deny user="?" />
改成<allow users="*" />程序正常运行,不会有对话框。
...全文
53 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsww 2003-10-22
  • 打赏
  • 举报
回复
同意楼上的!

-----------努力学习 不断实践 虚心讨教---------
webdiyer 2003-10-22
  • 打赏
  • 举报
回复
jianglinchun(萧丰) 说得很对,主要的问题在于你的验证方法是错误的,启用了forms验证后,需要用FormsAuthentication.RedirectFromLoginPage()方法或者FormsAuthentication.SetAuthCookie()方法来将身份验证票保存到Cookie中,否则用户即使通过了身份验证,但跳转到其它页面后无法取得身份验证票,所以asp.net的认证机制会认为该用户并没有通过验证,仍会跳转回登录页。
fornothing 2003-10-22
  • 打赏
  • 举报
回复
我的email daydayup2000@hotmail.com

谢谢你们!!
fornothing 2003-10-22
  • 打赏
  • 举报
回复
受益匪浅!!
fornothing 2003-10-21
  • 打赏
  • 举报
回复
to guoyan19811021(吉祥)

我已经按你说的作了,出现了这样的情况。
我login 以后进入webform2。aspx 的时候,点webform2。aspx 上的链接又会跳回到login 页面
这个是怎么回事?

有没有解决的办法啊??
stpangpang 2003-10-21
  • 打赏
  • 举报
回复
留下你的email
这有一篇,你看看
http://expert.csdn.net/Expert/topic/2205/2205601.xml?temp=.2125513
lovewangj 2003-10-21
  • 打赏
  • 举报
回复
说了这么多了,顶一下吧。
jianglinchun 2003-10-21
  • 打赏
  • 举报
回复
先帮你分析一下错误原因:
1、首先,你的页面以前访问正常,那么我可以肯定你的iis设置中的该虚拟目录的iis设置正确;
2、你的登陆代码没有错误,不过最后少加了一句:(下面是我代码段中的一部分)

//登陆成功,标记登陆状态(login_name是我的登陆用户名的textbox)
FormsAuthentication.RedirectFromLoginPage(login_name.Text,false);

认真分析你以上的代码和流程。你会发觉,你的登陆过程已经成功判断用户名和密码是否正确,但是最后你并没有指明该用户是否具有访问的权限。所以当你跳转到受保护页面的时候,该页面仍然认为该帐户并没有登陆。
这就像以前asp时代,最后判断用户名和密码都正确以后,需要将用户名/密码/登陆bool存入session以作为其他受保护页面判断的依据。

3、下面是web.config里面的解释,可能你没有好好看,应该仔细阅读一下:

<authorization>
<allow users="*" /> <!-- 允许所有用户 -->
<!-- <allow users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
<deny users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
-->
</authorization>

<!-- --!>中的是注释部分。

4、当你按照guoyan19811021(吉祥)说的作了以后,能够进入webform2.aspx页面,那么说明你并没有对webform2.aspx页面进行保护,应该在web.config页面加入:
……
</system.web>
<!-- 下面设置要保护的页面 -->
<location path="webform2.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
</configuration>
5、你给的webform2。aspx 上的链接 的信息不全面,我无法肯定该链接是否指向一个受保护的页面。但是能够成功跳转会登陆页,那么该页应该是一个受保护的web.config页面,当然webdiyer提到的也有可能性。

6、推荐你一个成功的配置案例
清华大学出版社《begining asp.net with c#》第20章有比较详细地分析,可以特别注意673和674页。

有问题可以继续提出来,让大家帮你解决。:D
fornothing 2003-10-21
  • 打赏
  • 举报
回复
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim username, password As String
username = Trim(TextBox1.Text)
password = Trim(TextBox2.Text)
If username = "administrator" And password = "'/" Then
Server.Transfer("webform2.aspx")
Else
Server.Transfer("webform3.aspx")
End If
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Server.Transfer("webform1.aspx")
End Sub
End Class
这个就是我的login 页,很简单阿,我就是对他进行字符匹配阿!!
webform2,webform1是同一个目录下的文件,也比较简单,就是两个Datagrid 控件,调用数据库而已!
webdiyer 2003-10-21
  • 打赏
  • 举报
回复
你的验证代码是如何写的?还有,你所说的链接链接到什么地方去了?是另一个目录的文件吗?该目录下有没有web.config?有的话是否还有相应的authorization配置节?
Abac 2003-10-21
  • 打赏
  • 举报
回复
http://www.microsoft.com/china/msdn/library/SecurityGuide/
很全,看一下就可以了。
guoyan19811021 2003-10-20
  • 打赏
  • 举报
回复
<authorization>
<allow users="administrator" />
<deny user="?" />
</authorization>
的控制和iis中的用户事无关的。
试试将iis中站点的目录安全性中的匿名访问和验证控制
采用windows集成控制,在匿名控制中用户名为IUSR_机器名

guoyan19811021 2003-10-20
  • 打赏
  • 举报
回复
修改iis中站点的目录安全性中的匿名访问和验证控制
fornothing 2003-10-20
  • 打赏
  • 举报
回复
还请指教!!

谢谢!!
fornothing 2003-10-19
  • 打赏
  • 举报
回复

还没解决
zyg9108 2003-10-19
  • 打赏
  • 举报
回复
我帮你顶一个
guoyan19811021 2003-10-19
  • 打赏
  • 举报
回复
你的iis 中的用户权限问题
fornothing 2003-10-19
  • 打赏
  • 举报
回复
to rgbcn(rgbcn)

怎么改阿,改哪里阿??

是C:\WINNT\Microsoft.NET\Framework\v1.1.4322\config 下的machine.config嘛??

把什么改成什么??
rgbcn 2003-10-19
  • 打赏
  • 举报
回复
实际上,直接修改xml文件的Windows下的访问权限应该就可以吧,比如说只允许Administrators和system组有完全控制权限,其它用户全删掉(当然不能删掉运行IIS服务的用户,如果你没特别指定的,默认就是系统账户)。试试。
rgbcn 2003-10-19
  • 打赏
  • 举报
回复
改成system

62,046

社区成员

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

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

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

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