Форумы Asp.Net в дальнейшем называются ANF, версия 2.0. Эта статья представляет собой текущий отчет о коэффициентах. Она просто записывает сегодняшнюю работу и не имеет никакого технического содержания.
Существующая система уже имеет свой набор пользовательских систем, которые необходимо подключить к АНФ. Требуется, чтобы при регистрации, входе в систему и смене паролей существующие пользователи системы были соответствующим образом отражены в АНФ. Изменения пользователей ANF не обязательно затрагивают существующие системы, только односторонняя синхронизация.
Найдите простой способ завершить интеграцию, затрагивая при этом как можно меньше существующего кода. Раньше я рассматривал план интеграции CnForums Baoyu с существующей системой и, наконец, решил полениться и добавить информацию, связанную с пользователем, и тип операции к URL-адресу после вышеуказанных действий существующей системы и передать ее на новую страницу для обработки соответствующие операции в АНФ.
Эта новая страница на данный момент называется Bridge.aspx. Конечно, она должна быть построена в проекте ANF и должны использоваться все используемые элементы. Она отвечает за получение имени пользователя, пароля и другой информации, а затем выполнение соответствующего ANF. операции.
Регистрация
очень проста. Мое имя пользователя и пароль — это самостоятельные атрибуты. Я получаю информацию из запроса. Если в нашей системе нет адреса электронной почты, мы просто добавляем его. Далее нам нужно установить для параметра AccountStatus значение Pass, а для IsAnonymous — значение Pass. выключать. Параметр bool в Users.Create определяет, следует ли отправлять пользователю электронное письмо об успешной регистрации. Конечно, я отключил его, если электронного письма не было.
Обратите внимание, что я везде ловлю ошибки, не возвращая их. Этого делать не обязательно.
публичный недействительный Регистр()
{
пытаться
{
Пользователь пользователя = новый пользователь();
user.Имя пользователя = Имя пользователя;
пользователь.Пароль = Пароль;
user.Email = " [email protected] ";
user.AccountStatus = UserAccountStatus.Approved;
user.IsAnonymous = ложь;
Users.Create(пользователь, ложь);
}
ловить
{
}
}
Логин
в основном копируется и вставляется. Обратите внимание на setcookie в конце, который является ключом к синхронному входу в систему.
публичный недействительный вход()
{
пытаться
{
Пользователь userToLogin = новый пользователь();
userToLogin.Имя пользователя = Имя пользователя;
userToLogin.Password = Пароль;
LoginUserStatus loginStatus = Users.ValidUser(userToLogin);
если (loginStatus == LoginUserStatus.Success)
{
if (!Globals.GetSiteSettings().AllowLogin)
{
bool разрешено = ложь;
int userid = Users.FindUserByUsername(userToLogin.Username).UserID;
ArrayList roles = Roles.GetRoles(userid)
;
{
if (role.Name == «Администраторы сайта» || role.Name == «Глобальные администраторы»)
{
разрешено = правда;
перерыв;
}
}
если (!разрешено)
{
возвращаться;
}
}
set_Cookie(userToLogin.Имя пользователя, «1»);
}
}
ловить
{
}
}
об изменении пароля
основано на уже происходящем входе в систему. Если ваше предположение не так, вам нужно добавить свое собственное мнение.
общественная недействительность ChangePassword()
{
пытаться
{
ForumContext forumContext = ForumContext.Current;
Пользователь Пользователь = forumContext.User;
если (пользователь != ноль)
{
user.ChangePassword(Пароль, НовыйПароль);
}
}
ловить
{
}
}
Установить cookie
public void set_Cookie(строка Имя пользователя, строка Selet_item)
{
если (Selet_item == "0")
{
FormsAuthentication.SetAuthCookie(имя пользователя,false);
}
еще
{
ForumContext forumContext = ForumContext.Current;
FormsAuthentication.SetAuthCookie (имя пользователя, правда);
forumContext.Context.Response.Cookies[FormsAuthentication.FormsCookieName].Expires=DateTime.
_Now.AddDays(System.Convert.ToInt32(Selet_item));
}
}
Наконец, после регистрации, входа в систему и изменения существующей системы страница Response.Redirect будет в порядке. Если вам не нравится Redirect, подойдет Server.Transfer или xmlhttp. Это зависит от того, какое отображение вам нужно. Еще один важный момент: передаваемая вами строка должна быть зашифрована, иначе ее нельзя будет записать... ※¥※×%※×, если это все еще небезопасно, используйте IP, чтобы определить, кто может получить доступ к этой странице!