2013-04-11 97 views
0

我的網站正在使用表單身份驗證與用戶和角色。 我使用小型web.config文件來拒絕/允許訪問特定用戶或角色的目錄。動態目錄授權asp.net

這些文件類似於這樣:

<?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中寫。

例子:

Dim myConfiguration As Configuration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~") 
myConfiguration.AppSettings.Settings.Item("myKey").Value = myNewVaule 
myConfiguration.Save() 

IIS應檢測時web.config變化,但我不知道如果urlAuthorizationModule配置變化發生瞬間。

不管怎麼說,你可以使用ASP.NET成員資格。在this tutorial中,您可以看到如何使用和配置它。 ASP.NET成員資格角色與urlAuthorizationModule集成,因此您可以使用角色在BD中創建新用戶,並保留<allow roles="Admins, Coaches, Athletes"/>以進行資源授權。

+0

感謝您的回覆!這裏是一個鏈接到相關的msdn頁面:http://msdn.microsoft.com/en-us/library/ms151456.aspx – Brabbeldas 2013-04-11 13:49:20