请教判断权限问题?各位帮忙看下!!

wtiancai 2005-11-13 09:24:19
我的页面全部都是放在跟目录下,我在web.config配置采用了表单验证方式,这样可以统一让用户登陆。不过问题出来了,那就是所有用户登陆完后,都可以访问所有页面。这边权限规则是系统管理员可以访问所有页面,站管理员只能访问自己特定的一些页面,普通用户只能他所属站的某些页面,该如何控制呢?

1。不想再去把文件移到特定目录下,这样改动太大了
2。不想去弄过继承page基类的类,因为已经弄了一个继承类公共模板


请大家帮忙讲解一下,谢谢了!
...全文
192 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
renyu732 2005-11-14
  • 打赏
  • 举报
回复
不知道楼主有没有看我给你的文章
其中
CREATE
DATABASE web

CREATE TABLE users
(
username nvarchar(64) CONSTRAINT users_PK PRIMARY KEY,
password nvarchar(128),
roles nvarchar(64)
)

CREATE INDEX credentials ON users
(
username,
password
)
中的roles就是用户的权限啊.
bh812 2005-11-14
  • 打赏
  • 举报
回复
谢谢
wtiancai 2005-11-14
  • 打赏
  • 举报
回复
在Login.aspx.cs里面我是这样操作的
FormsAuthentication.RedirectFromLoginPage(UID,false);
Session.Add("userID",UID);
Session.Add("userName",dt1.Rows[0]["USERNAME"]);
Session.Add("station",STN);
Session.Add("role",dt1.Rows[0]["ROLE_TYPE"]);
Response.Redirect("Main.aspx");

UID就是用户的id
wtiancai 2005-11-14
  • 打赏
  • 举报
回复
是的,我是采用表单验证,web.config如下,改如何管理权限呢?
<authentication mode="Forms">
<forms name="SM3B3Forms" loginUrl="Login.aspx" path="/" protection="All" timeout="30"></forms>
</authentication>

<authorization>
<deny users="?"></deny>
</authorization>
renyu732 2005-11-14
  • 打赏
  • 举报
回复
"我在web.config配置采用了表单验证方式,这样可以统一让用户登陆。"

你不是已经是Forms验证了吗?

不知道你的web.config是怎么配置的.

具体Froms验证可参考:
http://www.codeproject.com/aspnet/formsroleauth.asp
如果有问题,可以再交流.
wtiancai 2005-11-14
  • 打赏
  • 举报
回复
up
wtiancai 2005-11-14
  • 打赏
  • 举报
回复
renyu732(任宇)
你好,还是不大懂你的意思

如果按你那样说的话,那么好像不能做到统一登陆的,我是根据session值来判断权限值的,0代表系统管理员,1代表站管理员,2代表普通用户

请帮我再讲解一下,谢谢了!
jxufewbt 2005-11-13
  • 打赏
  • 举报
回复
楼上已经说得很清楚了
renyu732 2005-11-13
  • 打赏
  • 举报
回复
不好意思,上面说错了.
你应该将
<deny users="?"/>
改为
<deny users="*"/>
也即
<location path="不要验证的页面.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
实在不好意思.
renyu732 2005-11-13
  • 打赏
  • 举报
回复
下面是Microsoft的PetShop例子的web.config的forms验证代码.
<configuration>
<system.web>
<authentication mode="Forms">
<forms name="PetShopAuth" loginUrl="SignIn.aspx" protection="None" timeout="60" />
</authentication>
</system.web>
其中加了
<location path="EditAccount.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="OrderBilling.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="OrderShipping.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="OrderProcess.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="MyAccount.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
</configuration>
配置属性后,相应的页面就即不需要验证即可访问了.

也就是说,你只要将你不需要验证的文件写入配置文件的
location属性即可解决问题.

62,254

社区成员

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

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

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

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