Я не могу понять, почему многие люди говорят о создании провайдера членства, который наследует некоторый базовый класс в библиотеке asp.net и регистрирует поставщика в файле web.config. Потому что мы можем получить все, что хотим, не делая этого. Я написал статический класс, который может проверить, существует ли пользователь с соответствующей базой данных, добавлять пользователей, аутентифицировать пользователей, вызывая FormsAuthentication.SetAuthCookie
, и все работает. Вскоре, почему нам нужно сообщить файлу web.config, какой поставщик мы используем. Почему нашему провайдеру необходимо наследовать поставщика членства?Зачем использовать сообщение .net о провайдере?
ответ
Зачем нам нужно указывать файл web.config, который мы используем.
Так как модель поставщика работает в ASP.NET. Если вы пишете пользовательский провайдер, вам необходимо зарегистрировать его в web.config. Вам также необходимо указать, какой поставщик по умолчанию будет использовать ваше приложение. То же самое верно и для поставщика ролей.
Нашему поставщику необходимо наследовать поставщика членства?
Нет, вы не обязаны это делать. У вас может быть совершенно собственный код, который будет выполнять задачи поставщика членства, такие как проверка учетных данных пользователя или создание нового пользователя.
Поставщик членства является стандартным способом выполнения этих задач в приложениях ASP.NET, с которыми знакомы большинство разработчиков. Если вы решите перевернуть свой собственный код, то, если новый разработчик присоединится к вашей команде, ему нужно будет узнать обо всем этом пользовательском коде.
Также вы упомянули, что вы написали статический класс. Недостатком статических классов для такого рода вещей является то, что вы сильно связываете разные уровни вашего приложения, что затрудняет тестирование и повторное использование их в изоляции. Весь смысл поставщика членства в том, что он является абстракцией. Также, если вам не нужны все функциональные возможности, вам не нужно переопределять все методы при создании пользовательского поставщика членства. Только те, которые вы на самом деле используете.
, но я проделал всю работу без регистрации поставщика в web.config. в скором времени, что будет не так, если мы не сделаем –
Если ваш пользовательский класс не является классом 'MemberhipProvider', вам не нужно регистрировать что-либо в своем web.config для его работы. –
Я все еще не понимаю, что это изменит, если я зарегистрирую его или нет, как это влияет на мое приложение –