Ответ 1
Попробуйте добавить "По умолчанию = MyMembershipProvider" в тег членства. Если вы не укажете значение по умолчанию, оно попытается использовать стандарт ASP.
Я внедрил пользовательский поставщик членства, используя LINQ to SQL. Когда я добавил поставщика членства на мой веб-сайт asp.net mvc в веб-конфигурации, страница входа в систему перестала работать.
Настройка моего Web.config:
<membership>
<providers>
<clear/>
<add
name="MyMembershipProvider"
type="MyMembership.MyMembershipProvider"
connectionStringName="ApplicationServices"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
applicationName="/"/>
</providers>
</membership>
Ошибка, которую я получаю, следующая:
Сообщение об ошибке Parser: Не удалось найти поставщика членства по умолчанию.
Ошибка источника:
Line 53: <forms loginUrl="~/Account/LogOn" timeout="2880"/>
Line 54: </authentication>
Line 55: <membership>
Line 56: <providers>
Line 57: <clear/>
Я застрял от того, где исходить отсюда. Я не могу установить точку останова, поскольку ошибка, как представляется, вызывается из основного кода.
Я использую стандартный код членства, который поставляется со стандартным проектом asp.net mvc. Поставщик членства реализуется в отдельной сборке, которая включена в веб-проект.
Любая помощь будет принята с благодарностью.
Спасибо!
Попробуйте добавить "По умолчанию = MyMembershipProvider" в тег членства. Если вы не укажете значение по умолчанию, оно попытается использовать стандарт ASP.
2 вещи, которые вы можете попробовать. Номер один: возможна отладка, просто перерыв во всех исключениях и загрузка отладочных символов, включая исходный код для платформы .NET.
Номер два: поскольку ваш тип определен в другой сборке, строка в type
, вероятно, должна быть строкой, соответствующей классу сборки, то есть ей нравится
type="MyMembership.MyMembershipProvider, MyAssemblyName"