2010-11-10 15 views
0

我需要快速環繞現有ASP.Net 2.0 web應用程序的一些安全。在想了一會之後,我想起了微軟在幾年前創建了成員和角色範例,並且Visual Studio可以爲您創建一切。Asp.net Membership和Roles自給式Web應用程序

因此我僞造了利用內置在ASP.Net網站管理工具,並創建在應用程序中一個簡單的小的安全框架。設置了所有選項後,Visual Studio在我的網站新創建的App_Data目錄下創建了一個名爲ASPNETDB.MDF的漂亮的小型SQL Express數據庫。這很有效,直到你部署它。

想這個應用程序推到我的開發服務器,我意識到它是行不通的,除非你有宿主機器上安裝了SQL Express之後。更糟糕的是,我認爲在負載平衡的環境下,考慮到數據庫本身只能與N個節點中的一個隔離,在負載均衡環境下工作基本上沒有辦法。

而不是工作腳本了DB和它推到我現有的SQL中...我想我會問StackOverflow上如果有一個簡單而安全的ASP.Net網站更好的解決方案。

我喜歡保持現有模式尚未有該數據庫成爲一個地方,或平面文件DB烤權到應用程序中。目前,我甚至可以在每個用戶或角色更改的情況下部署平面文件以抵消PROD中的負載平衡網站。

請問有沒有一種方法來創建某種類似的設置與平面文件?我認爲這是App_Data文件夾的重點?

+1

就我個人而言,我認爲使用您現有的數據庫不太方便。成員,角色和配置文件的ASP.NET安全表不應該太難以設置。特別是在負載平衡的環境中。 – 2010-11-10 23:41:40

回答

1

您可以使用自定義角色&成員資格提供程序支持平面文件,如XML。這裏是一個XML成員提供者的鏈接,我已經看到了類似的角色實現。

XML Membership Provider

+0

這看起來非常有趣,基本上是我快速輕鬆部署所需的。我將把這個標記爲答案,因爲你對我的想法已經死了!萬分感謝! – farina 2010-11-11 21:33:44

1

除非您在託管計算機上安裝了SQL Express,否則它不會起作用。

不一定。如果您仍想使用默認的成員資格/角色提供者,您可以在宿主機器上安裝DB服務器,或者將DB的一個實例作爲單獨的服務器(只需更改提供程序的連接字符串)即可。

更糟糕的是,我想有本質上是沒有辦法,這將負載平衡的環境下工作,考慮到DB本身只會被隔離到N個節點之一。

這種說法在這種特殊情況下並不正確。

通過負載平衡,您不會有孤立的數據庫,而是一個單獨的數據庫服務器。

我喜歡保持現有 模型尚未有該數據庫成爲一個地方,或平面文件DB烤權 到應用程序中。對於時間 之中,我甚至與每個用戶或角色 改變部署 平面文件的罰款,如果你說適當的SQL數據庫該應用程序將不會擴展到抵消負載PROD

平衡 網站,我不明白平面文件存儲是如何實現的。

您仍然可以保留本地SQL Server數據庫,只要您負責維護不同節點間的數據庫一致性,它就會工作。

在你的情況下,我會親自使用默認的會員/角色提供者,就像你現在做的那樣。 但是在部署時,只需將連接字符串更改爲正確的數據庫服務器即可。

無論如何,您將需要一個用於其他內容的數據庫,那麼爲什麼不對所有使用該應用程序的數據(包括成員資格/角色)使用同一個數據庫。

問候。

+0

經過進一步的審查後,我無法從我所處的環境中與我現有的數據庫交談。我瞭解您正在投入的解決方案......但我更感興趣的是嵌入式/可部署數據庫的某些概念,而無需現在擔心縮放。 – farina 2010-11-11 21:33:00

0

我找到了一個很好的解決這一這裏... HTTP://aspnetxmlproviders.codeplex.com/。通過使用動態XML,您可以立即破解一個簡單的基於提供者的安全模型。

相關問題