我的网站正在对用户和角色使用表单身份验证 . 我使用小的web.config文件来拒绝/允许访问特定用户或角色的目录 .
那些文件看起来类似于:
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="Admins, Coaches, Athletes"/>
<deny users="*, ?"/>
</authorization>
</system.web>
</configuration>
以上工作 .
我的网站有两组用户;运动员和教练 . 用户是在数据库中完成运动员的教练的配置 .
我现在需要创建以下内容:我的网站将生成运动员特定的报告 . 这些报告只应对指定的运动员以及他/她的教练可见 . 每个运动员都将在服务器上获得自己的目录 .
为了实现这一点,我可以将web.config文件放入每个目录中,其中包含以下内容:
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow users="AthleteName"/>
<allow users="CoachName"/>
<deny users="*, ?"/>
</authorization>
</system.web>
</configuration>
这可能会奏效 . 我的问题是:可以通过会员页面随时将新用户添加到网站 . 教练/运动员配置在数据库中完成,并且可以随时更改 . 它也可以通过不属于我网站的后端系统进行更改 .
我没有使用静态web.config,而是在寻找一种更加动态的目录访问授权方式 . 有人有个好主意吗?
提前致谢 .
1 回答
您可以在运行时使用
WebConfigurationManager.OpenWebConfiguration()
在web.config中编写 .例:
IIS应检测
web.config
何时更改,但我不确定urlAuthorizationModule
配置中的更改是否立即发生 .无论如何,您可以使用ASP.NET成员资格 . 在this tutorial中,您可以看到如何使用和配置它 . ASP.NET成员资格角色与urlAuthorizationModule集成,因此您可以在BD中使用角色创建新用户,并保留
<allow roles="Admins, Coaches, Athletes"/>
以进行资源授权 .