** 如果您覺得文章對您有點用,麻煩在您閱讀、收藏、轉發的時候,順手幫忙點個贊、留個言、加關注,這是我繼續寫下去的絕佳動力。**
一、資源信息
1、頁面訪問地址:http://xxxx /siteserver/login.aspx;
2、aspx頁面地址:\source\SiteServer.Web\SiteServer\ login.aspx;
3、C#代碼地址:\source\SiteServer.BackgroundPages\PageLogin.cs;
二、重點源碼詳解
1、頁面是否允許訪問
頁面能不能訪問是由:IsForbidden來決定,而IsForbidden的賦值通過代碼跟蹤到BasePage.CS頁面,可以看到:
從上面代碼可以看到,IsAccessable為否且不是管理員登錄,則IsForbidden會被設置成true,從而使得本頁面無法訪問,跳向登錄頁面。
所以如果想控制某個頁面不需要登錄就可以訪問的話,則把IsAccessable如果設置成true即可,否則頁面就必須管理員登錄后才能訪問。
2、顯示錯誤信息
如果訪問地址Url里參數error不為空,則會把此參數內容顯示在頁面上,或者直接設置信息控件LtlMessage.Text,如下:
顯示的效果如下:
3、系統黑白名單
一個后臺頁面能不能被訪問,除了前面提到的管理員是否登錄之外,還需要考慮正在訪問頁面的IP是否被系統排除。見如下代碼:
ConfigManager.SystemConfigInfo.RestrictionType對應的就是:
ConfigManager.Instance.RestrictionBlackList對應的就是:
ConfigManager.Instance.RestrictionWhiteList對應的就是:
4、系統是否需要重新安裝
通過代碼跟蹤,可以跟到ConfigDao.cs文件:
從而得知系統是否需要安裝通過修改數據庫表bairong_Config字段IsInitialized的值即可,IsInitialized = False表示需要重新安裝。從這個代碼也可以解釋為什么數據庫連接不上的時候系統會跳到安裝界面了,因為默認情況下是IsInitialized = false。
5、是否啟用驗證碼
通過代碼跟蹤到:FileConfigManager.cs文件:
從以上代碼可以得知,是否啟用驗證碼是在
/SiteFiles/Configuration/Configuration.config文件中的配置,如下圖:
6、登錄驗證
通過代碼跟蹤到:AdministratorDao.cs文件:
從上圖可以看到,除了正常的用戶名是否存在的驗證之外,還得驗證帳號狀態是否正常(被鎖定),除此之外還得檢測系統是否啟用了登錄失敗次數鎖定功能:
這段代碼對應的后臺配置就是:
最后才是密碼驗證,通過代碼跟蹤還能發現,有密碼加密的方式叫明碼:
也就是說,以后如果萬一忘記了管理員密碼,可以通過修改表bairong_Administrator的PasswordFormat字段值來實現重置密碼。只需要把PasswordFormat的值得改成Clear,表示Password值就是未加密的明碼。
開心一笑
老王給媳婦打電話,卻傳來一個男人急促呼吸的聲音,老王生氣的說:你是誰啊?我媳婦呢?然后那男的說:我是搶手機的,你媳婦在我后面追的了,先不聊了,你媳婦加速了。