贊@SouthShoreAK我不認爲可以這樣做,但總是有選擇,一種方法可以通過有一個基本的web.config,你可以編輯保存在每個文件夾中的你在你添加你需要的授權的時候創建,我在下面的代碼是這樣做的。
try
{
//Load the empty base configuration file
Configuration config = WebConfigurationManager.OpenWebConfiguration("~/WebEmpty.config");
//Get te authorization section
AuthorizationSection sec = config.GetSection("system.web/authorization") as AuthorizationSection;
//Create the access rules that you want to add
AuthorizationRule allowRule = new AuthorizationRule(AuthorizationRuleAction.Allow);
allowRule.Users.Add("userName");
//allowRule.Users.Add("userName2"); Here can be added as much users as needed
AuthorizationRule denyRule = new AuthorizationRule(AuthorizationRuleAction.Deny);
denyRule.Users.Add("*");
//Add the rules to the section
sec.Rules.Add(allowRule);
sec.Rules.Add(denyRule);
//Save the modified config file in the created folder
string path = MapPath("~/NewFolder/Web.config");
config.SaveAs(path);
}
catch (Exception ex)
{
//Handle the exceptions that could appear
}
你WebEmpty.config會是這樣
<?xml version="1.0"?>
<configuration>
</configuration>
您保存的文件看起來像這樣
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authorization>
<allow users="userName" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
另一個要考慮的是創建的讀/寫權限配置文件,但我認爲你已經有了它,因爲動態文件夾的創建。
希望得到這個幫助。
我不確定可以這樣做,因爲在大多數情況下,配置文件只在進程啓動時讀取。如果您甚至可以在運行時更改它,我不確定您的更改會被拾取。您可能會更好地實施處理用戶名和請求路由的自定義安全提供程序。 – SouthShoreAK
@SouthShoreAK我想這就像改變授權或連接字符串。如果你使用C#System.Configuration,那麼它是可能的。您可以添加一個實現自定義安全提供程序的參考嗎?它可以是有幫助的。謝謝! – Inbal