Я создаю собственный провайдер членства для моего приложения asp.net. Я также создал отдельный класс «DBConnect», который обеспечивает функциональные возможности базы данных, такие как выполнение оператора SQL, выполнение SP, выполнение SP или Query и возвращение SqlDataReader и т. Д. ...
Я создал экземпляр класса DBConnect в Session_Start файла Global.asax и сохранил его для сеанса. Позже, используя статический класс, я предоставляю функциональность базы данных во всем приложении, используя один и тот же сеанс. Короче говоря, я предоставляю единую точку для всех операций базы данных на любой странице asp.net.
Я знаю, что могу написать свой собственный код для подключения / отключения базы данных и выполнения SP внутри методов, которые мне нужно переопределить. Пожалуйста, посмотрите на код ниже -
public class SGI_MembershipProvider : MembershipProvider
{
......
public override bool ChangePassword(string username, string oldPassword, string newPassword)
{
if (!ValidateUser(username, oldPassword))
return false;
ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, newPassword, true);
OnValidatingPassword(args);
if (args.Cancel)
{
if (args.FailureInformation != null)
{
throw args.FailureInformation;
}
else
{
throw new Exception("Change password canceled due to new password validation failure.");
}
}
.....
//Database connectivity and code execution to change password.
}
....
}
МОЯ ПРОБЛЕМА -
Теперь мне нужно выполнить часть базы данных во всех этих переопределенных методах из той же точки базы данных, как описано выше. То есть я должен передать экземпляр DBConnect, существующий в сеансе, этому классу, чтобы я мог получить доступ к методам.
Может ли кто-нибудь предоставить решение по этому вопросу. Там могут быть некоторые лучшие методы, которые я не знаю об этом. Подход, который я использую, может быть неправильным. Ваши предложения всегда приветствуются.
Спасибо, что поделились своим драгоценным временем.