The Will Will Web | 八月 2008

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

解決【規劃的新資料庫擁有者已經是資料庫的使用者】問題

之前我有寫過一篇開發 ASP.NET 使用 SQL Server 2000 要注意權限是否足夠,但同樣的問題今天又有同事遇到了,不過當我要將該使用者設定為該資料庫的擁有者時,SQL 2000 卻回應我「規劃的新資料庫擁有者已經是資料庫的使用者」錯誤訊息,不過用這段訊息去搜尋什麼也找不到,通常我都將特定的關鍵字翻譯成英文後再去查詢就會查到了,而這段話的英文其實是 "The proposed new database owner is already a user in the database",當然,我也因此找到了解答。

... 繼續閱讀 ...

如何透過 Visual Studio 對任意網站的 JavaScript 除錯

在 Visual Studio 2005/2008 的[工具]選單中有個 Attach to Process 功能,可以將目前正在執行中的程序「附加」到 Visual Studio 的除錯工具(Debugger)中,讓 Visual Studio 隨時可以對任意程序進行除錯工作。這是個很方便的功能,你甚至可以不用先開啟方案檔或專案,就可以直接透過 Attach to Process 功能進行除錯,當然這也包括針對 Internet Explorer 進行除錯。

... 繼續閱讀 ...

使用 SecureString 類別保護你的字串值

我們其實可以透過許多工具取得 .Net 應用程式執行時在記憶體中的資料,例如:WinDbgDebug Diagnostic Tool。而當你在 .Net 程式中需要將一些較機密的資料暫存在變數(物件)時,若單純的使用 System.String 類別建立執行個體(Instance)儲存資料,就很容易被一些除錯工具或傾印(dump)工具取得原始資料,原因是 System.String 類別是不變的(immutable),且當不再需要它時也無法透過程式排程進行記憶體回收。所以當你使用 System.String 類別儲存文字內容在記憶體中,就很難保證在物件不用了之後能夠即時在記憶體中刪除,這樣的程式就有被資訊揭露(Information Disclosure)的安全風險。

... 繼續閱讀 ...

如何設定遠端桌面斷線超過時間自動登出

因為 Windows Server 2003 預設只提供兩個同時遠端連線的授權,若是要使用超出 2 個連線以上的要求,就必須安裝 Terminal Server 與 Terminal Server Licensing 並購買足夠的授權才能用,一般來說主機不會讓太多人管理,所以大多不會使用那麼多的授權數,兩個應該很夠了。不過,使用遠端桌面(Remote Desktop)最討厭的就是有人「佔著茅坑不拉屎」,登入之後做完事不登出,而是直接斷線,這導致工作階段(Session)一直沒有結束,如果有兩個人同時做這件事,就把僅有的這 2 個連線數給佔滿了,導致其他人想連都連不進去。錯誤訊息如下:

... 繼續閱讀 ...

開發ASP.NET請不要使用 Environment.CurrentDirectory

我們之前有位新手工程師(現在已經不新了)曾經在 ASP.NET 中使用 Environment.CurrentDirectory ( 取得目前之工作目錄的完整路徑 ) 來存取網站內的檔案,一般來說很少有人會用 Environment.CurrentDirectory 來存取網站上的檔案路徑,我自己猜測應該是一般的 C# 書籍都是用 Console Program 來撰寫範例,所以可能是新手上路搞不清楚狀況才這樣寫,而且在 Visual Studio 的開發環境中這樣使用還真的不會出錯呢���所以才導致新人一直使用錯誤的方法開發,直到程式被部署到測試主機後才發現程式無法執行。

... 繼續閱讀 ...