none
ASP.NET 4.0使用ActiveDirectoryMembershipProvider的問題 RRS feed

  • 問題

  • 大家好,

        我在Windows 7 企業版上使用VS 2010企業旗艦版開發ASP.NET Web應用程式,並使用現有Windows Server 2008 R2標準版所架設的ADDS來進行使用者的身分驗證,目前做法如下:

    1. 在web.config將authentication mode設定為Forms。 
    2. 設定Membership區段。 
      <membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
         <providers>
          <clear/>
          <add name="AspNetActiveDirectoryMembershipProvider" connectionStringName="ADService"
           type="System.Web.Security.ActiveDirectoryMembershipProvider,System.Web, Version=2.0.3600
           , Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
         </providers>
        </membership>
    3. 設定connectionStrings。
      <connectionStrings>
        <add name="ADService" connectionString="LDAP://mydomain.com.tw/" />
       </connectionStrings>

     當我使用Login控制項嘗試驗證使用者身分時,會出現下列錯誤訊息,我猜測是我本機的GAC中沒有安裝System.Web, Version=2.0.3600的組件,不過不確定是不是這個原因,請問各位有遇過類似形況嗎?該如何排除呢?謝謝。

    無法載入檔案或組件 'System.Web, Version=2.0.3600, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其相依性的其中之一。 系統找不到指定的檔案。

    2010年8月19日 上午 10:02

所有回覆

  • Hi,

     

    看起來的確是System.Web.dll版本的不同, 建議您可以根據您GAC內的版本來作設定, 並且在未來佈署注意伺服器上的版本問題.

     

    Rgs,

    lolota


    Tech.Days Taiwan 2010 即將於 9/28-9/30 隆重展開!我們很榮幸向您推薦此微軟年度重量級的技術盛會

    2010年8月23日 上午 02:21
  • 謝謝Lolota,請問在ASP.NET 4.0使用AspNetActiveDirectoryMembershipProvider在web.config中應該怎麼設定上述的程式碼是我在MSDN Libary看到的做法,不過依照版本編號看來,似乎還是使用2.0的簽名碼,謝謝。
    2010年8月25日 上午 01:09
  • 您好 TerryChuang ,

    確認一下 bin 資料夾裡面有沒有這支 DLL 檔:

    System.Web.Security


    Best regards

    • 已編輯 DK. Da 2012年6月10日 上午 01:48
    2010年8月25日 上午 02:12
  • 謝謝Lolota,請問在ASP.NET 4.0使用AspNetActiveDirectoryMembershipProvider在web.config中應該怎麼設定上述的程式碼是我在MSDN Libary看到的做法,不過依照版本編號看來,似乎還是使用2.0的簽名碼,謝謝。


    Hi,

     

    您可以看您網站預設引用的System.Web.dll的版本號是多少, 然後在您的config設定, ex:

    <membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
      <providers>
      <clear/>
      <add name="AspNetActiveDirectoryMembershipProvider" connectionStringName="ADService"
       type="System.Web.Security.ActiveDirectoryMembershipProvider,System.Web, Version=2.0.0.0
       , Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
     </membership>
    
    

     

    改成2.0.0.0應該就可以了..

     

     

    rgs,

    Lolota


    Tech.Days Taiwan 2010 即將於 9/28-9/30 隆重展開!我們很榮幸向您推薦此微軟年度重量級的技術盛會

    • 已提議為解答 DK. Da 2010年8月25日 上午 09:49
    2010年8月25日 上午 02:34
  • 您好 TerryChuang ,

    確認一下 bin 資料夾裡面有沒有這支 DLL 檔:

    System.Web.Security


    Best regards

    小中中的學習筆記

    Alert您好,

       我在bin資料夾中並沒有看到System.Web.Security,加入參考的時候也找不到這個dll,請問該如何加入呢?謝謝。

    2010年8月25日 上午 09:42
  • 謝謝Lolota,請問在ASP.NET 4.0使用AspNetActiveDirectoryMembershipProvider在web.config中應該怎麼設定上述的程式碼是我在MSDN Libary看到的做法,不過依照版本編號看來,似乎還是使用2.0的簽名碼,謝謝。


    Hi,

     

    您可以看您網站預設引用的System.Web.dll的版本號是多少, 然後在您的config設定, ex:

     

    <membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
     <providers>
     <clear/>
     <add name="AspNetActiveDirectoryMembershipProvider" connectionStringName="ADService"
      type="System.Web.Security.ActiveDirectoryMembershipProvider,System.Web, Version=2.0.0.0
      , Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
     </providers>
     </membership>
    
    

     

     

    改成2.0.0.0應該就可以了..

     

     

    rgs,

    Lolota


    Tech.Days Taiwan 2010 即將於 9/28-9/30 隆重展開!我們很榮幸向您推薦此微軟年度重量級的技術盛會

    Hi Lolota,

       我查過了我的System.Web的版本是4.0.0.0,執行階段版本v,將Membership區段設定為下列內容則產生相同的錯誤訊息:

    <membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
     <providers>
     <clear/>
     <add name="AspNetActiveDirectoryMembershipProvider" connectionStringName="ADService"
      type="System.Web.Security.ActiveDirectoryMembershipProvider,System.Web, Version=<strong>4.0.30319</strong>
      , Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
     </providers>
     </membership>
    

    無法載入檔案或組件 'System.Web, Version=4.0.30319, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其相依性的其中之一。 系統找不到指定的檔案。

     

    若改為下列情況則顯示嘗試存取未載入的 AppDomain。 (發生例外狀況於 HRESULT: 0x80131014)

    <membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
      <providers>
      <clear/>
      <add name="AspNetActiveDirectoryMembershipProvider" connectionStringName="ADService"
       type="System.Web.Security.ActiveDirectoryMembershipProvider,System.Web, Version=4.0.0.0
       , Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
     </membership>
    

    請問我這樣的設定是正確的嗎?謝謝。

    2010年8月25日 上午 09:48
  • 您好 TerryChuang,

    小弟忘記這個 System.Web.Security 是跟其他 namespace 一起被包在同一個 DLL 裡面了,

    所以只要有參考 System.Web.dll 就 OK 了~~~

    抱歉抱歉~~~



    Best regards
    • 已編輯 DK. Da 2012年6月10日 上午 01:48
    2010年8月25日 上午 09:49
  • 您好 TerryChuang,

    小弟忘記這個 System.Web.Security 是跟其他 namespace 一起被包在同一個 DLL 裡面了,

    所以只要有參考 System.Web.dll 就 OK 了~~~

    抱歉抱歉~~~



    Best regards

    小中中的學習筆記

    您太客氣了,感謝您的協助。
    2010年8月26日 上午 12:47
  • Hi Terry,

     

    您可以用4.0.0.0代替就可以了, 試看看可不可行.

     

     

     

    rgs,

    Lolota


    Tech.Days Taiwan 2010 即將於 9/28-9/30 隆重展開!我們很榮幸向您推薦此微軟年度重量級的技術盛會

    2010年8月27日 上午 08:20
  • Hi Terry,

     

    您可以用4.0.0.0代替就可以了, 試看看可不可行.

     

     

     

    rgs,

    Lolota


    Tech.Days Taiwan 2010 即將於 9/28-9/30 隆重展開!我們很榮幸向您推薦此微軟年度重量級的技術盛會

    Hi, Lolota:

    依照您所說的,若改為4.0.0.0則顯示下列錯誤訊息,請問這有可能是哪個環節出錯呢?謝謝。

    嘗試存取未載入的 AppDomain。 (發生例外狀況於 HRESULT: 0x80131014)

     

    <membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
     <providers>
     <clear/>
     <add name="AspNetActiveDirectoryMembershipProvider" connectionStringName="ADService"
      type="System.Web.Security.ActiveDirectoryMembershipProvider,System.Web, Version=4.0.0.0
      , Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
     </providers>
     </membership>

    2010年8月31日 上午 09:22
  • 您好 TerryChuang ,

    看起來可能是您的 ADService 這個 connectionString 的設定的關係,

    該 AppDomain 確定可以對到那台 AD 嗎~?



    Best regards
    • 已編輯 DK. Da 2012年6月10日 上午 01:48
    2010年8月31日 下午 12:30
  • 您好 TerryChuang ,

    看起來可能是您的 ADService 這個 connectionString 的設定的關係,

    該 AppDomain 確定可以對到那台 AD 嗎~?



    Best regards

    小中中的學習筆記

    Hi, Albert:

       謝謝您的答覆,我的PC是有加入DOMAIN的,所以我想連到AD應該是沒問題,請問如果依照您所想的,一般都是怎麼進行測試,來確定您所說的對不對的到AD的問題呢?謝謝。

    2010年9月1日 下午 09:58