【发布时间】:2011-02-24 10:06:12
【问题描述】:
我使用Visual Studio 2008。在我的项目中我使用表单身份验证,我的项目结构如下
root
|
login.aspx
home.aspx
web.config
admin (folder)
|
admin.aspx
web.config
这里的root web.config如下
<authentication mode="Forms">
<forms name="Authen" protection="All" timeout="60" loginUrl="Login.aspx" enableCrossAppRedirects="true" cookieless="AutoDetect"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
在内部 web.config 中
我的用户是 用户名角色 admin1 管理员 admin2 管理员 user1 用户 user2 用户
您可以在第二个 web.config 中看到,我授予具有“Admin”角色和“user1”用户的用户访问权限。
为了访问“admin”文件夹,我写了以下内容:
Configuration config = WebConfigurationManager.OpenWebConfiguration("~/HR");
SystemWebSectionGroup systemWeb = (SystemWebSectionGroup)config.GetSectionGroup("system.web");
AuthorizationSection section = (AuthorizationSection)systemWeb.Sections["authorization"];
AuthorizationRule newRule = new AuthorizationRule(AuthorizationRuleAction.Allow);
newRule.Users.Add("user1");
section.Rules.Add(newRule);
并将 web.config 保存为
config.Save();
当我从 Visual Studio 开发服务器运行它时,它工作正常,当我在 IIS 中托管它时,我收到以下错误
配置错误 说明:处理服务此请求所需的配置文件期间发生错误。请查看下面的具体错误详细信息并适当地修改您的配置文件。
解析器错误消息:加载配置文件时出错:访问路径“F:\dotnet\samples\myproj\UI\hr\f-q_g-yn.tmp”被拒绝。
来源错误:
[没有相关的源代码行]
源文件:F:\dotnet\samples\myproj\UI\hr\web.config 行:0
这里的问题是,它无法保存 web.config
我有一个解决办法,就是我加了
<identity impersonate="true" userName="myusername" password="mypassword"/>
root web.config,它工作正常。但我的老板说这不是正确的方法。解决这个问题的正确方法是什么? 请帮忙
【问题讨论】:
标签: asp.net forms authentication