The Will Will Web

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

如何快速查詢 web.config 中各項設定參數的預設值

昨天有朋友問我一個 ASP.NET 的問題,他說他利用 FormsAuthentication.Authenticate 方法驗證使用者帳號、密碼,而且在 web.config 中設定了使用者的登入帳號、密碼,密碼直接用「明碼」表示,但卻怎樣都無法登入成功,這時我就想到應該是他忽略 web.config 中 credentials 的預設屬性值。

他的 web.config 中的 credentials 設定如下:

<configuration>
   <system.web>
      <authentication mode="Forms">
         <forms loginUrl="/login.aspx">
            <credentials>
               <user 
                  name="UserName1" 
                  password="PlainTextPassword"/>
            </credentials>
         </forms>
      </authentication>
   </system.web>
</configuration>

他忽略了 credentials 中的 passwordFormat 屬性預設值為 SHA1 編碼,並不是 Clear (明碼),所以才會永遠登入失敗。

像是這類的預設值,我通常不會上 MSDN 查詢,而是直接開啟 .NET Framework 中所附的一個 web.config 預設說明檔,用這個檔案來查詢各種參數的預設值非常的快速,不用上網就能查,而且每台有安裝 .NET Framework 的電腦都有。預設檔案路徑如下:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config.comments

這個檔案除了可以看見 web.config 的所有預設屬性值外,還可以看見所有屬性可能出現的所有選項值,只要你對該設定有一定程度的瞭解,通常就可以一目了然的立即反應你可以設定的值,不用每次都上網閱讀龐雜的 MSDN 文件。如下圖示:

web.config.comments 除了可以看見 web.config 的所有預設屬性值外,還可以看見所有屬性可能出現的所有選項值,只要你對該設定有一定程度的瞭解,通常就可以一目了然的立即反應你可以設定的值,不用每次都上網閱讀龐雜的 MSDN 文件

以我朋友問我的問題來說,只要將 web.config 修改成如下的設定即可:

<configuration>
   <system.web>
      <authentication mode="Forms">
         <forms loginUrl="/login.aspx">
            <credentials passwordFormat="Clear">
               <user 
                  name="UserName1" 
                  password="PlainTextPassword"/>
            </credentials>
         </forms>
      </authentication>
   </system.web>
</configuration>

相對的,除了 web.config.comment 可以進行查閱外,對於整台主機預設的 machine.config.comments 設定檔也可以在 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG 目錄下找到,都可以做為開發時期方便的參考依據。

相關連結