0

Я новичок в MVC 3 и прошел множество классных учебников. Любить дизайн и наслаждаться повышением производительности.Строки подключения с ASP.Net V3

Одна из проблем, с которыми я сталкиваюсь сейчас, заключается в том, что я использовал встроенную базу данных для обработки логина, который находится за многими базовыми приложениями MVC в большинстве учебных пособий. Теперь мне нужно изменить, чтобы получить доступ к данным входа в систему реального производства, но не могу найти, где это сделать.

Я изначально преподавал, было бы так же просто, как изменить строку соединения, но база данных производства полностью отличается от приведенного примера.

Это не очевидно для меня, когда модель/контроллер получает данные. Например, где модель/контроллер возвращает имя пользователя или пароль для пароля. Если бы я знал это, я мог бы изменить свое решение, указав правильную базу данных/таблицы/поля.

Кроме того, моя настоящая база данных смоделирована в EF и находится в отдельном проекте в рамках одного и того же решения. Поэтому у меня есть MyProject.Data и MyProject.Web и в конечном итоге будет иметь проект MyProject.Test.

Любая помощь здесь была бы очень полезной. Заранее спасибо.

EDIT 1: В реальной базе данных также есть таблица входа с полями имени пользователя и пароля, так же как и имя входа в MVC simple login. Однако база данных, очевидно, не является частью системы, как в примерах проектов. Вместо этого он сидит на сервере, ожидая доступа.

Моя проблема в том, что я не знаю, куда идти, чтобы внести необходимые изменения. Я думал, что это будет строка соединения, но это не работает. Даже ошибки, которые я получаю, просто указывают мне на строку соединения, а не на то, чтобы дать мне строку кода для поиска.

+0

Похоже, вам нужен (пользовательский) членский провайдер. Но слишком мало деталей, чтобы быть уверенным. –

ответ

1

Фреймворк вытягивает строку соединения, которая по умолчанию называется так же, как и производный класс DbContext. Итак, найдите строку соединения, такую ​​же, как этот класс. Сказав, что эта строка соединения не имеет ничего общего с реализацией форм по умолчанию, поскольку она извлекает из строки соединения, которая идентифицируется в разделе членства web.config. Это должно выглядеть примерно так:


<membership> 
    <providers> 
    <clear/> 
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" 
     enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" 
     maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
     applicationName="/" /> 
    </providers> 
</membership> 

Здесь вы видите имя connectionStringName. Вы можете, конечно, просто изменить это, но, скорее всего, если у вас уже есть существующая база данных, это, скорее всего, не будет правильно структурировано.

Комментарий от Henk скорее всего прав на то, что вы захотите создать своего собственного поставщика членства (просто создайте класс и наследуйте от MembershipProvider и реализуйте CreateUser, GetUser, ValidateUser и ApplicationName (или, как я думаю)). Вы должны быть уверены, что зарегистрируете этого провайдера вместо AspNetMembershipProvider. Как только вы это сделаете, вы должны увидеть, что точки останова попадают на вашего провайдера и просто реализуют по мере необходимости для вашей базы данных/AD/...

+0

Спасибо за ваш ответ, это сделал трюк. –

Смежные вопросы