none
請問 web.config 加密問題 RRS feed

  • 問題

  • 我在 win10 , vs 2007 環境建了一個專案

    使用 aspnet_regiis.exe加密成功,

    建置時出現建置成功 , 但有以下一些訊息,

    1>  沒有辦法解決 "Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=我隱藏了" 和 "Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=我隱藏了" 之間的衝突。任意選擇 "Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=我隱藏了"。
    1>  請考慮將組件 "Newtonsoft.Json, Culture=neutral, PublicKeyToken=我隱藏了" 的 app.config 從版本 "10.0.0.0" [] 重新對應至版本 "11.0.0.0" [D:\.....\packages\Newtonsoft.Json.11.0.1\lib\net45\Newtonsoft.Json.dll],以解決衝突並避免出現警告。
    1>  請考慮將組件 "WebGrease, Culture=neutral, PublicKeyToken=我隱藏了" 的 app.config 從版本 "1.5.1.25624" [] 重新對應至版本 "1.6.5135.21930" [D:\.....\packages\WebGrease.1.6.0\lib\WebGrease.dll],以解決衝突並避免出現警告。
    1>  請考慮將組件 "Antlr3.Runtime, Culture=neutral, PublicKeyToken=我隱藏了" 的 app.config 從版本 "3.4.1.9004" [] 重新對應至版本 "3.5.0.2" [D:\.....\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll],以解決衝突並避免出現警告。
    1>  請考慮將組件 "Microsoft.Owin, Culture=neutral, PublicKeyToken=我隱藏了" 的 app.config 從版本 "3.0.1.0" [] 重新對應至版本 "4.0.0.0" [D:\.....\packages\Microsoft.Owin.4.0.0\lib\net451\Microsoft.Owin.dll],以解決衝突並避免出現警告。
    1>  請考慮將組件 "Microsoft.Owin.Security, Culture=neutral, PublicKeyToken=我隱藏了" 的 app.config 從版本 "3.0.1.0" [] 重新對應至版本 "4.0.0.0" [D:\.....\packages\Microsoft.Owin.Security.4.0.0\lib\net451\Microsoft.Owin.Security.dll],以解決衝突並避免出現警告。
    1>  請考慮將組件 "Microsoft.Owin.Security.Cookies, Culture=neutral, PublicKeyToken=我隱藏了" 的 app.config 從版本 "3.0.1.0" [] 重新對應至版本 "4.0.0.0" [D:\.....\packages\Microsoft.Owin.Security.Cookies.4.0.0\lib\net451\Microsoft.Owin.Security.Cookies.dll],以解決衝突並避免出現警告。
    1>  請考慮將組件 "Microsoft.Owin.Security.OAuth, Culture=neutral, PublicKeyToken=我隱藏了" 的 app.config 從版本 "3.0.1.0" [] 重新對應至版本 "4.0.0.0" [D:\.....\packages\Microsoft.Owin.Security.OAuth.4.0.0\lib\net451\Microsoft.Owin.Security.OAuth.dll],以解決衝突並


    執行時則出現錯誤

    '/' 應用程式中發生伺服器錯誤。
    無法載入檔案或組件 'Microsoft.Owin, Version=3.0.1.0, Culture=neutral, PublicKeyToken=我隱藏了' 或其相依性的其中之一。 找到的組件資訊清單定義與組件參考不符。 (發生例外狀況於 HRESULT: 0x80131040)
    描述: 在執行目前 Web 要求的過程中發生未處理的例外狀況。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

    例外狀況詳細資訊: System.IO.FileLoadException: 無法載入檔案或組件 'Microsoft.Owin, Version=3.0.1.0, Culture=neutral, PublicKeyToken=我隱藏了' 或其相依性的其中之一。 找到的組件資訊清單定義與組件參考不符。 (發生例外狀況於 HRESULT: 0x80131040)

    原始程式錯誤:


    行 64:             //    ClientSecret = ""
    行 65:             //});
    行 66:         }
    行 67:     }
    行 68: }

    原始程式檔: D:\.....\App_Start\Startup.Auth.cs    行: 665

    我有針對 Newtonsoft.Json 查了一下, 我專案用的版本是Version=10.0.0.0,

    我用了
    C:\Windows\Microsoft.NET\Framework\v4.0.30319  
    及  C:\Windows\Microsoft.NET\Framework\v2.0.50727
    內的 aspnet_regiis.exe 加密
    都是一樣狀況, 但只要把 web.config 換回原來沒有加密過的檔案, 就可正常執行?

    請問這是何狀況 ? 如何解決 ?

    謝謝

    2020年2月29日 上午 04:09

解答

  •  aspnet_regiis.exe這個工具是在網站發行到IIS伺服器之後使用, 不是在開發時使用的
    • 已標示為解答 MIS110 2020年3月14日 上午 02:55
    2020年2月29日 上午 11:15
  • 它的加密碼需要在同一台主機。

    可以參考黑大的文章:https://blog.darkthread.net/blog/web-config-connstr-encryptor-v09-cht/


    理直氣和,切記。

    個人

    • 已標示為解答 MIS110 2020年3月14日 上午 02:55
    2020年3月1日 上午 07:09
  • 從他顯示的訊息來看
    小喵個人覺得比較像是 版本衝突 的問題
    而非加密解密

    建議您

    1.先以未加密的檔案運行看看,看是否能夠正常的運行
    如果一樣不行,那麼就先把問題處理好再進行加密

    2.如果是版本的衝突,建議您參考以下這一篇,看看是否可以解決您的問題

    [Tips][筆記]解決.NET Framework 3.5網站中,專案使用 .NET Framework 4.5 的問題

    ^_^


    topcat(姍舞之間的極度凝聚)
    http://www.dotblogs.com.tw/topcat
    世界上有兩樣東西分享給別人後,不但不會變少,還會變更多:
    一個是快樂,另一個是知識~ 分享...是知識累積的開始...

    • 已標示為解答 MIS110 2020年3月14日 上午 02:55
    2020年3月2日 上午 12:50
    版主
  • 因為加密需要用到金鑰, 所以建議在部署的電腦做, 否則就要把加密用的金鑰一併放在web.config一起帶到部署的電腦, 並選擇正確的演算法
    • 已標示為解答 MIS110 2020年3月14日 上午 02:55
    2020年3月5日 下午 01:43

所有回覆

  •  aspnet_regiis.exe這個工具是在網站發行到IIS伺服器之後使用, 不是在開發時使用的
    • 已標示為解答 MIS110 2020年3月14日 上午 02:55
    2020年2月29日 上午 11:15
  • 它的加密碼需要在同一台主機。

    可以參考黑大的文章:https://blog.darkthread.net/blog/web-config-connstr-encryptor-v09-cht/


    理直氣和,切記。

    個人

    • 已標示為解答 MIS110 2020年3月14日 上午 02:55
    2020年3月1日 上午 07:09
  • 從他顯示的訊息來看
    小喵個人覺得比較像是 版本衝突 的問題
    而非加密解密

    建議您

    1.先以未加密的檔案運行看看,看是否能夠正常的運行
    如果一樣不行,那麼就先把問題處理好再進行加密

    2.如果是版本的衝突,建議您參考以下這一篇,看看是否可以解決您的問題

    [Tips][筆記]解決.NET Framework 3.5網站中,專案使用 .NET Framework 4.5 的問題

    ^_^


    topcat(姍舞之間的極度凝聚)
    http://www.dotblogs.com.tw/topcat
    世界上有兩樣東西分享給別人後,不但不會變少,還會變更多:
    一個是快樂,另一個是知識~ 分享...是知識累積的開始...

    • 已標示為解答 MIS110 2020年3月14日 上午 02:55
    2020年3月2日 上午 12:50
    版主
  • 從他顯示的訊息來看
    小喵個人覺得比較像是 版本衝突 的問題
    而非加密解密

    建議您

    1.先以未加密的檔案運行看看,看是否能夠正常的運行
    如果一樣不行,那麼就先把問題處理好再進行加密

    2.如果是版本的衝突,建議您參考以下這一篇,看看是否可以解決您的問題

    [Tips][筆記]解決.NET Framework 3.5網站中,專案使用 .NET Framework 4.5 的問題

    ^_^


    topcat(姍舞之間的極度凝聚)
    http://www.dotblogs.com.tw/topcat
    世界上有兩樣東西分享給別人後,不但不會變少,還會變更多:
    一個是快樂,另一個是知識~ 分享...是知識累積的開始...

    我也覺得應該是版本的問題, 未加密的檔案執行正常, 我再看看您提供的連結, 謝謝喔
    2020年3月5日 上午 08:54
  • 它的加密碼需要在同一台主機。

    可以參考黑大的文章:https://blog.darkthread.net/blog/web-config-connstr-encryptor-v09-cht/


    理直氣和,切記。

    個人

    哈! 我是參考黑皮書做的, 作者應該也是黑大 ?

    我是在同一台主機上做, 其實也就是在開發環境提供的IIS 下發行後的 web.config , 將其加密後, 再蓋掉原 web.config,

    幾年前也曾用同方式, 對 web form 的 web.config 加密, 可正常執行

    mvc + vs2017 + win10 就死了,  也不知那裡出問題

    有人在這個環境下可正常嗎 ? 謝謝

    另, 想問一下 . 黑皮書沒再續出了嗎 ? 之前有朋友想買說買不到了

    2020年3月5日 上午 09:04
  •  aspnet_regiis.exe這個工具是在網站發行到IIS伺服器之後使用, 不是在開發時使用的
    感謝回覆, 如果我是將開發後產生的 web.config 檔加密後, 再蓋回去, 然後再執行, 這樣可以嗎 ? 謝謝
    2020年3月5日 上午 09:06
  • 因為加密需要用到金鑰, 所以建議在部署的電腦做, 否則就要把加密用的金鑰一併放在web.config一起帶到部署的電腦, 並選擇正確的演算法
    • 已標示為解答 MIS110 2020年3月14日 上午 02:55
    2020年3月5日 下午 01:43
  • 1. 我是 Bruce,不是黑大。

    2. 加密完為何要蓋掉?程式應該會處理好 web.config,不要人工介入。

    3. 絕版。絕版。絕版。(很重要,所以說三次)


    理直氣和,切記。

    個人

    2020年3月6日 上午 06:45
  • 感謝各位提供的資訊, 雖然試了各位的做法都沒好, 但因正式環境的 iis 不是我可以介入, 所以只能在家中電腦試.

    不過, 覺得各位的資訊可能也會對其他人很有幫助, 就先當成可以參考的解答, 讓其他人搜尋時可以參考

    謝謝大家的幫忙

    2020年3月14日 上午 02:55
  • 1. 我是 Bruce,不是黑大。

    2. 加密完為何要蓋掉?程式應該會處理好 web.config,不要人工介入。

    3. 絕版。絕版。絕版。(很重要,所以說三次)


    理直氣和,切記。

    個人

    幹嘛絕版 ? 同事很多人都把它當mvc 的聖經 , 銷量應該不錯啊 ?
    2020年3月14日 上午 02:56
  • 要重寫 .NET Core 10 呀(誤、大誤、誤誤誤)

    理直氣和,切記。

    個人

    2020年3月16日 上午 02:20
  • 要重寫 .NET Core 10 呀(誤、大誤、誤誤誤)

    理直氣和,切記。

    個人

    悟 、大悟、悟悟悟

    • 已編輯 MIS110 2020年3月17日 上午 07:21
    2020年3月17日 上午 07:08