Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / смена паролей / 25 сообщений из 25, страница 1 из 1
06.10.2014, 08:37
    #38767491
da haroch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
Доброе утро!
Встала задача о смене паролей, вот читаю пока, но не как не могу сообразить, как организовать смену пароле, логин и пароль хранится в базе данных mssqlserver.
Читала про MembershipUser u = Membership.GetUser(User.Identity.Name);
u.ChangePassword(u.ResetPassword(), newPassword);
Но как это связать с базой. Мне кажется это всё должно делаться на много проще, может у кого-то есть статья почитать? или пример как это организованно у вас. За ранее спасибо!!
...
Рейтинг: 0 / 0
06.10.2014, 09:34
    #38767510
VIT2708_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
da haroch,

1. Использльвать базу которая генерится студией и пользоваться стандартным MemberShip
2. Написать свой MemberShip унаследованный от стандартного MemberShip-а
3. Написать самому с ноля.
...
Рейтинг: 0 / 0
06.10.2014, 10:17
    #38767545
da haroch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
VIT2708_,
и правда а кто сказал что будет легко. Спасибо вам что отвечате. Буду рыть другого выбора нет =)))
...
Рейтинг: 0 / 0
06.10.2014, 10:30
    #38767561
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
da harochлогин и пароль хранится в базе данных mssqlserver

Пароль никогда не хранится в базе данных, только его хеш.

Расскажите по-подробней, где вы хотите приделать смену паролей? Версия asp.net и какой подход: WebForms или MVC? Что вообще сейчас есть?
...
Рейтинг: 0 / 0
06.10.2014, 10:31
    #38767563
VIT2708_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
da haroch,

погуглите "CustomMemberShip" ну или попробуйте если это возможно использовать стандартную базу, ну или попробовать перенести таблицы и ХП из генерируемой студии базой в вашу
...
Рейтинг: 0 / 0
06.10.2014, 10:54
    #38767580
da haroch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
hVostt,
на странице хочу сделать кнопку "сменить пароль".
Версия. ASP.net 2.0 Web Forms
<authentication mode="Forms">
...
Рейтинг: 0 / 0
06.10.2014, 10:55
    #38767582
da haroch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
da haroch,
а что есть сейчас, да вроде всё есть, кроме смены паролей=)))хочу смену паролей =)))))))
...
Рейтинг: 0 / 0
06.10.2014, 11:26
    #38767610
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
hVosttWebForms или MVC?da harochда вроде всё есть
...
Рейтинг: 0 / 0
06.10.2014, 11:29
    #38767615
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
Shocker.ProhVosttWebForms или MVC?
da harochда вроде всё естьсорри, почему-то это сообщение отобразилось как последнее, предыдущего не увидел
...
Рейтинг: 0 / 0
06.10.2014, 11:30
    #38767618
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
da haroch,

... читайте обзоры
ASP.NET Login Controls Overview
...
Рейтинг: 0 / 0
06.10.2014, 11:34
    #38767623
da haroch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
Shocker.Pro, не смешно=))))
...
Рейтинг: 0 / 0
06.10.2014, 11:38
    #38767626
da haroch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
Shocker.Pro, у меня может тут трагедия, я ваще по ходу событий учусь всё делать=) руководство вдруг решило, что я умею писать и валят на меня кучу задач, вот сижу и изучаю, поэтому может быть и где то тупо спрашиваю, простите.
...
Рейтинг: 0 / 0
06.10.2014, 11:41
    #38767632
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
da harochShocker.Pro, у меня может тут трагедия, я ваще по ходу событий учусь всё делать=) руководство вдруг решило, что я умею писать и валят на меня кучу задач, вот сижу и изучаю, поэтому может быть и где то тупо спрашиваю, простите.А более опытных разработчиков у вас нет?
...
Рейтинг: 0 / 0
06.10.2014, 11:45
    #38767636
da haroch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
skyANA, видимо нет
...
Рейтинг: 0 / 0
06.10.2014, 11:46
    #38767638
da haroch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
skyANA, кто есть, те пхп
...
Рейтинг: 0 / 0
06.10.2014, 11:47
    #38767641
da haroch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
Ладно соберись тряпка, пошла соображать дальше.
...
Рейтинг: 0 / 0
06.10.2014, 11:49
    #38767642
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
da haroch,

...если все равно учитесь, так может сразу на MVC/WebAPI ???... Во-первых, модно-стильно-молодежно, во вторых, больше подсказчиков тут .. ВебФормисты уже на пенсиях ....
...
Рейтинг: 0 / 0
06.10.2014, 11:51
    #38767645
da haroch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
carrotik,
да как сказать учусь, уже много проектов сделано. Просто порой задачи встают, которые я вообще даже не знаю, как сделать. А по поводу MVC я уже думала, вот только с временем пока плохо.
...
Рейтинг: 0 / 0
06.10.2014, 11:53
    #38767648
da haroch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
carrotikВебФормисты уже на пенсиях ....
Да ладно вы же не на пенсии и часто мне помогаете=))))
...
Рейтинг: 0 / 0
06.10.2014, 11:56
    #38767653
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
da harochhVostt,
на странице хочу сделать кнопку "сменить пароль".
Версия. ASP.net 2.0 Web Forms
<authentication mode="Forms">

Покажите код логина. Код, где проверяется логин/пароль пользователя. И я скажу что делать дальше.
...
Рейтинг: 0 / 0
06.10.2014, 12:15
    #38767688
da haroch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
//Подключаемся к базе данных
using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["TNConnectionString"].ConnectionString)
SqlCommand cm = new SqlCommand("FindUser", cn);
SqlDataReader dr = default(SqlDataReader);
FormsAuthenticationTicket ticket = default(FormsAuthenticationTicket);
int n = 0;
string strRoles = null;
string strEncrypted = null;
//Открываем соединение
try {
	cn.Open();
} catch (SqlException ex) {
	Response.Write(ex.Message);
	return;
}
//Задаём тип команды
cm.CommandType == System.Data.CommandType.StoredProcedure
//Добавляем параметры имени
dynamic prmName = new SqlParameter("@Name", System.Data.SqlDbType.NVarChar, 50);
prmName.Value = txtName.Text;
cm.Parameters.Add(prmName);
//Добавляем параметр пароля
dynamic prmPass = new SqlParameter("@Password", System.Data.SqlDbType.NVarChar, 50);
prmPass.Value = txtPassword.Text;
cm.Parameters.Add(prmPass);
//Выполняем запрос
n == cm.ExecuteScalar

if (n > 0) {
	// Если пользователь с таким именем и паролем существует, то ищем его роли
	cm = null;
	cm = new SqlCommand("exec FindRoles '" + txtName.Text + "'", cn);
	dr = cm.ExecuteReader();
	// Составляем список ролей
	while (dr.Read) {
		if (string.IsNullOrEmpty(strRoles)) {
			strRoles += dr(0);
		} else {
			strRoles += ", " + dr(0);
		}
	}
	// Создаём аутентификационный билет
	ticket = new FormsAuthenticationTicket(1, txtName.Text, DateTime.Now, DateTime.Now.AddMinutes(30), false, strRoles);
	// Шифруем билет
	strEncrypted = FormsAuthentication.Encrypt(ticket);
	// Сохраняем cookie-файл
	Response.Cookies.Add(new HttpCookie("UrlAuthz", strEncrypted));

	// Возвращаемся на исходную страницу
	FormsAuthentication.RedirectFromLoginPage(txtName.Text, false);

} else {
	// Если пользователь не был найден, то выдаём сообщение об ошибке
	lbl.Visible = true;
}
...
Рейтинг: 0 / 0
06.10.2014, 12:25
    #38767706
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
da haroch,

Ну собственно, по приведённому коду видно, что нужно узнать имя хранимой процедуры в базе данных или создать её, которая бы меняла пароль пользователя. Процесс аналогичный:

Код: c#
1.
2.
//Подключаемся к базе данных
using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["TNConnectionString"].ConnectionString)



Потом нам нужна хранимая процедура, например, ChangePassword

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
SqlCommand cm = new SqlCommand("ChangePassword", cn);
SqlDataReader dr = default(SqlDataReader);
// убрал // FormsAuthenticationTicket ticket = default(FormsAuthenticationTicket);
int n = 0;
string strRoles = null;
string strEncrypted = null;
//Открываем соединение
try {
	cn.Open();
} catch (SqlException ex) {
	Response.Write(ex.Message);
	return;
}
//Задаём тип команды
cm.CommandType == System.Data.CommandType.StoredProcedure
//Добавляем параметры имени
dynamic prmName = new SqlParameter("@Name", System.Data.SqlDbType.NVarChar, 50);
prmName.Value = txtName.Text;
cm.Parameters.Add(prmName);
//Добавляем параметр пароля
dynamic prmPass = new SqlParameter("@NewPassword", System.Data.SqlDbType.NVarChar, 50);
prmPass.Value = txtPassword.Text; // тут типа должен новый пароль находиться
cm.Parameters.Add(prmPass);
//Выполняем запрос
n == cm.ExecuteScalar



Вот и всё собственно. Если бы использовался родной ASP.NET-овский провайдер, было бы намного проще конечно. Ну а раз такие костыли, то придётся впендюривать очередной г. код
...
Рейтинг: 0 / 0
06.10.2014, 12:46
    #38767733
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
da haroch, понятно...

Вы бы для начала почитали про Forms Authentication Provider и как оно устроено.
Тогда хотя бы поняли, что у многих даже не встаёт сл. проблемы: "Но как это связать с базой. Мне кажется это всё должно делаться на много проще, может у кого-то есть статья почитать?".
...
Рейтинг: 0 / 0
06.10.2014, 12:49
    #38767739
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
А вообще hVostt прав: если уже начали делать на своих собственных хранимках, то продолжайте по аналогии.

Единственно надо задуматься, что не проще-ли сейчас всё переписать, потому как в дальнейшем изменения вносить в свой велосипед будет всё сложнее.
...
Рейтинг: 0 / 0
06.10.2014, 12:54
    #38767754
da haroch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
смена паролей
skyANA, я знаю что вы правы, это просто были самые первые мои начинания, я сейчас стараюсь переделывать. Но до этого руки не доходили, пока снова не пришлось туда лезть. Я уже и забыла даже что такое есть=)
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / смена паролей / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]