2013-10-11 70 views
1

我想我可能只是在這裏錯過了一些小東西,但我不確定它在哪裏。我試圖實現一個自定義成員資格提供程序,以便我可以使用一個asp.net mvc應用程序的Membership API。我創建的自定義成員資格提供程序是存儲在web.config文件的credentials部分中的用戶。我得到的錯誤消息是:自定義會員供應商無法加載文件或程序集

無法加載文件或程序集「CompanyName.App_Code.Membership」或其依賴項之一。該系統找不到指定的文件。

我的代碼如下所示:

的web.config

<membership defaultProvider="WebConfigMembershipProvider"> 
    <providers> 
     <clear /> 
     <add name="WebConfigMembershipProvider" 
      applicationName="CompanyName" 
      Description="Web Configuration Membership Provider" 
      type="CompanyName.App_Code.Membership.WebConfigMembershipProvider, CompanyName.App_Code.Membership" /> 
    </providers> 
</membership> 

目錄結構

App_Code 
    -Membership 
    -WebConfigMembershipProvider.cs : MembershipProvider 

WebConfigMembershipProvider.cs

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Web; 
    using System.Web.Security; 
    using System.Web.Configuration; 
    using System.Configuration; 
    using System.Web.Helpers; 

    namespace CompanyName.App_Code.Membership 
    { 
     public class WebConfigMembershipProvider : MembershipProvider 
     { 
      public override bool ValidateUser(string username, string password) 
      { 
       Configuration webConfiguration = WebConfigurationManager.OpenWebConfiguration(path: "~"); 
       AuthenticationSection authenticationSection = (AuthenticationSection)webConfiguration.GetSection("system.web/authentication"); 
       FormsAuthenticationUser storedUser = authenticationSection.Forms.Credentials.Users[username]; 
       return storedUser != null && Crypto.VerifyHashedPassword(storedUser.Password, password); 
      } 
/*The rest of MembershipProvider's methods implemented here throwing NotImplementedException*/ 

當我在我的登錄控制器中調用Membership.ValidateUser時發生錯誤。

+0

僱員會員供應商在哪裏? ha-ha – Jonesopolis

+0

與論壇網站不同,我們不使用「謝謝」或「任何幫助表示讚賞」,或在[so]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed - 從 - 個)。 –

回答

3

看起來type可能配置不正確。在我的項目中,我有這樣的事情。

type="CompanyName.App_Code.Membership.WebConfigMembershipProvider, CompanyName" 

這是假設你也有CompanyName在你.csproj文件rootnamespace。

<RootNamespace>CompanyName</RootNamespace> 

在旁註中,CompanyName.Membership.WebConfigMemberShipProvider本身看起來不錯。命名空間中的App_Code對我來說看起來有點奇怪。這只是我的偏好。

您也可以嘗試清理,再次構建然後嘗試。