[英]Is it possible to reference a value from an SQL database in a web.config file?
我知道這是一個奇怪的問題,基本上我們正在嘗試使用web.config文件來限制對某些用戶的訪問。 遺憾的是,該站點不使用角色,而是訪問sql數據庫,根據存儲的值確定用戶的角色。 是否有可能以某種方式拉取SQL值來確定是否應授予用戶訪問權限,例如:
<location path="Restrictedpage.aspx">
<system.web>
<authorization>
<allow users="SQL Reference would go here, returning the usernames that fall under certain criteria, such as value admin = 1"/>
<deny users="*"/>
</authorization>
</system.web>
我知道這是一個奇怪的問題,我對這一切都很陌生,但我真的可以使用一些幫助,如果有人有更好的方法,我也會很感激。
謝謝!
不.web.config用於聲明性配置。 話雖如此,僅僅因為數據庫中沒有角色,並不意味着你不能在應用程序中使用角色。 例如,如果某人在數據庫中有IsAdmin = 1
,則可以在登錄時將其置於Administrators
角色。 然后,您可以輕松使用web.config中的<authorization>
部分,僅允許Administrators
角色的成員訪問該位置。
作為web.config的替代方法,您可以使用RestrictedPage.aspx的Page_Load()
來查詢數據庫並檢查用戶是否是管理員。 如果不是,請將用戶重定向到其他位置。 但是,如果您可以重新編譯代碼並且要解決所有這些問題,那么您也可以使用基於角色的方法。
如果更改了web.config文件,IIS將自動重新加載配置。 我不是說這是推薦的方法。 但是......如果更新了拒絕列表,您可以在應用程序中編寫代碼來修改web.config文件。 只需確保您的應用程序有權修改Web.config。
您還可以考慮使用允許您保持當前數據庫模式不變的成員資格提供程序http://msdn.microsoft.com/en-us/library/f1kyba5e(v=vs.100).aspx 。
創建會員提供者的教程: http : //www.asp.net/web-forms/videos/how-do-i/how-do-i-create-a-custom-membership-provider
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.