2013-10-11 1 views
1

Я думаю, что мне просто не хватает чего-то маленького здесь, но я не уверен, где он находится. Я пытаюсь реализовать пользовательский поставщик членства, чтобы я мог использовать API-интерфейс членства для приложения asp.net mvc. Созданный пользовательский поставщик членства я создаю для пользователей, хранящихся в разделе учетных данных файла web.config. Сообщение об ошибке, которое я получаю:Поставщик пользовательского членства не смог загрузить файл или сборку

Не удалось загрузить файл или сборку «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*/ 

Ошибка возникает, когда я вызываю Memberhip.ValidateUser в моем контроллере входа.

+0

Где поставщик услуг для сотрудников? ha-ha – Jonesopolis

+0

В отличие от форумов, мы не используем «Спасибо», «Любая помощь оценена» или подписи на [so]. См. «[Должны ли« Привет »,« спасибо », теги и приветствия удалены из сообщений?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -Удалена-от-сообщений). –

ответ

3

Похоже, что type может быть неправильно настроен. В моем проекте у меня есть что-то вроде этого.

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

это если у вас также есть CompanyName как rootnamespace в файле .csproj.

<RootNamespace>CompanyName</RootNamespace> 

На боковой ноте, CompanyName.Membership.WebConfigMemberShipProvider сам выглядит хорошо. App_Code в пространстве имен выглядит немного странно для меня. Это просто мое предпочтение.

Вы также можете попробовать очистить, построить снова, а затем попробовать.