2012-02-13 3 views
4

Я пишу приложение MVC 3, и я пытаюсь реализовать свой собственный пользовательский поставщик членства (следуя образцу в Apress 'Pro ASP.NET MVC 3 Framework).Пример кода для создания пользовательского поставщика членства

Я создал свой собственный класс, унаследованный от MembershipProvider и (используя ReSharper) реализовал все 27 методов с NotImplementedExceptions.

Теперь я переопределил метод ValidateUser, так как он работает нормально, но я хотел бы сделать мой провайдер более надежным и реализовать другие методы (например, установить MinRequiredPasswordLength и GetNumberOfUsersOnline).

Есть ли пример кода, который я могу использовать, чтобы начать заполнять эти методы, которые я могу настроить, чтобы соответствовать моей собственной схеме DB/Model?

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

EDIT: Этот вопрос был просто опущен дважды. Если вы собираетесь делать снизу, пожалуйста, напишите комментарий о том, почему я могу работать над улучшением моих вопросов.

EDIT 2: Например, для следующего метода:

public override int GetNumberOfUsersOnline() 
{ 
    throw new System.NotImplementedException(); 
} 

Я могу попробовать написать код с нуля, чтобы посмотреть на какой-то веб-журнал, определить входа в систему и время приблизительная пользователи, если они но для этого мне понадобится много времени. Поскольку весь этот код имеет тот же интерфейс, что Microsoft написал для стандартного SqlMembershipProvider, нет ли там кода (даже от MS), который содержит этот метод? Если это так, я хочу взять его, изменить его, чтобы он использовал мою схему БД вместо схемы по умолчанию aspnetdb. Я бы предпочел иметь какой-то базовый код для работы. Я думал, что это будет простой и довольно стандартный запрос, но, возможно, нет.

+1

Проблема с вашим вопросом в том, что это не приемлемый вопрос для сайта. Вы просите примеры сделать то, что вы хотите сделать. То, что вы должны задавать, - это вопросы, которые будут иметь окончательный ответ. Лучший способ задать свой вопрос - включить код, который у вас есть, который пытается получить желаемый результат, указать, где он идет не так, и что вы пытались его решить. В этом случае покажите нам свою реализацию поставщика, укажите, где он неадекватен и оттуда. –

+0

@JeffMercado, спасибо за отзыв. Пожалуйста, дайте мне знать, если мое второе редактирование поможет прояснить мой вопрос. – bigmac

ответ

9

Вы не можете использовать код поставщика по умолчанию для пользовательского поставщика, поэтому вы реализуете обычай один, чтобы настроить его в соответствии с вашими требованиями, использовать свои собственные таблицы БД и т.д.

Взгляните на мои сообщения в блоге: custom membership, custom role поставщиков и custom membership user. Существует пример того, как вы можете использовать свою собственную базу данных для получения/установки информации о членстве.

+0

Вот что я искал. Большое спасибо! – bigmac

+0

@bmccleary вы очень желанные :) – TheBoyan

0

Вот пример реализации пользовательского MembershipProvider на MSDN.

http://msdn.microsoft.com/en-us/library/6tc47t75.aspx

+0

спасибо за предоставление ссылки. Я увяз в ссылках Google, поскольку я не думаю, что правильно формулировал свой поиск. Я ценю прямую ссылку. – bigmac

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