[英]What is the best way to refactor presentation code out of my domain objects in an ASP.NET MVC solution?
[英]Secure My ASP .NET Code For Presentation?
我有一個Web應用程序,為了向我的客戶端進行演示,他們要求我將它安裝在本地服務器上以便他們可以測試它,這是我的問題!
有什么方法可以讓我為該服務器唯一發布,我確實提出了一些限制,但我的應用程序中的許多功能都是開放的,因此他們可以從服務器制作磁盤映像並在其他任何地方使用它,
是否有任何方法可以使用,所以我的Web應用程序檢查此服務器是否是相同的服務器(通過硬件ID或任何我不知道的任何東西)然后開始工作!
我看到很多代碼,但它們是用於生成獨特隱藏的勝利形式,但我如何連接到asp .net
編輯
你也可以看看這個,
我正在using system.management class
這是可靠的我的意思是他們獨特嗎?
private string GetUniqueID()
{
string cpuInfo = string.Empty;
ManagementClass mc = new ManagementClass("win32_processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if (cpuInfo == "")
{
//Get only the first CPU's ID
cpuInfo = mo.Properties["processorID"].Value.ToString();
break;
}
}
ManagementObject dsk = new ManagementObject(@"win32_logicaldisk.deviceid=""" + "C" + @":""");
dsk.Get();
string volumeSerial = dsk["VolumeSerialNumber"].ToString();
string HardWareUniqueID = volumeSerial + cpuInfo;
return HardWareUniqueID;
}
感謝您的回答,提前致謝
如果你想避免讓它“電話回家”,另一種方法是生成某種證書並將其放在機器上。 使用只有您知道的私鑰才能加密計算機名稱和/或IP。 然后讓您的應用程序使用您的公鑰對其進行解密,以驗證是否允許它在此服務器上運行。 沒有人知道您的私鑰將無法創建有效的證書。
你有幾個選擇......
將您的網站鎖定到您安裝它的單個IP地址。 為了讓您的生活更輕松,請在通用頁面基類中檢查該IP。 (注意,您也可以編寫HTTP處理程序,但基類方法更容易。)
在應用程序中放置一個“電話回家”電話,每次啟動時都會檢查您的服務器。 這樣,您可以檢查是否已移動它或是否正在運行多個實例。
使用.NET的內置許可功能(同一個第三方開發人員用於控件等)
最簡單的...只需加入定時炸彈,讓它們測試幾周,然后自動阻止訪問。 要聰明一點......堅持最后檢查的時間,這樣你就可以判斷他們是否已經回滾了他們的時鍾,試圖獲得更多的使用。
只需確保分發Web應用程序,而不是Web項目,這樣您就可以將代碼分發為已編譯的bumary,而不必分發代碼隱藏文件。 這將繼續窺探,但確實使部署更加痛苦,因為您總是需要重新編譯每次更改(而不是按需編譯)。
我會投入定時炸彈。 實施它是微不足道的。 此外,您的客戶不會認為您不信任他們。 應用程序中的固定評估期非常常見。
在沒有任何用戶訪問權限的情況下為他們提供VMware映像,只允許他們在Web瀏覽器中通過HTTP從外部打開網站。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.