Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 24.12.2018, 18:47   #1
Darius88
Новичок
Джуниор
 
Регистрация: 23.12.2018
Адрес: Барнаул
Сообщений: 12
Репутация: -8
По умолчанию Проверка учетных записей(база данных)

Здравствуйте, как произвести проверку учетных записей по параметрам в консольном:
1) Для всех ли пользователей из списка созданы учётные записи, допустим админ,пользователь и гость.
2) Все ли пользователи принадлежат к указанным в списке группам
3) Не устарели ли пароли.
О результатах проверки и возможных ошибках программа отчитывается в текстовом файле.
Короткие сообщения, например "всё в порядке" выводит на экран.
Darius88 вне форума   Ответить с цитированием
Старый 24.12.2018, 18:57   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 13,109
Репутация: 2237
По умолчанию

Цитата:
Сообщение от Darius88 Посмотреть сообщение
1) Для всех ли пользователей из списка созданы учётные записи, допустим админ,пользователь и гость.
Запросить всех пользователей и проверить, если список большой. Если один, два можно и на базе.

Цитата:
Сообщение от Darius88 Посмотреть сообщение
2) Все ли пользователи принадлежат к указанным в списке группам
Запросить группы и проверить связи.

Цитата:
Сообщение от Darius88 Посмотреть сообщение
3) Не устарели ли пароли.
Запросить дату изменения пароля и сравнить с текущей. Можно выбрать только тех у кого устарели и проверить сколько строк вернулось, если надо выводить кто просрочил. Или сразу каунтом на бд, если нет.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 24.12.2018, 19:11   #3
Darius88
Новичок
Джуниор
 
Регистрация: 23.12.2018
Адрес: Барнаул
Сообщений: 12
Репутация: -8
По умолчанию

123123

Последний раз редактировалось Darius88; 24.12.2018 в 19:13.
Darius88 вне форума   Ответить с цитированием
Старый 24.12.2018, 19:12   #4
Darius88
Новичок
Джуниор
 
Регистрация: 23.12.2018
Адрес: Барнаул
Сообщений: 12
Репутация: -8
По умолчанию

Эмм, это как? Перерыл учебник А. Побегайло, не нашел такого, не понимаю, это единственная программа из практики, которую не понятно как делать и какой код
Darius88 вне форума   Ответить с цитированием
Старый 24.12.2018, 19:37   #5
Darius88
Новичок
Джуниор
 
Регистрация: 23.12.2018
Адрес: Барнаул
Сообщений: 12
Репутация: -8
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Запросить всех пользователей и проверить, если список большой. Если один, два можно и на базе.


Запросить группы и проверить связи.



Запросить дату изменения пароля и сравнить с текущей. Можно выбрать только тех у кого устарели и проверить сколько строк вернулось, если надо выводить кто просрочил. Или сразу каунтом на бд, если нет.
Можно попроще, для чайника оъяснить с кодом, пожалуйста?
Darius88 вне форума   Ответить с цитированием
Старый 24.12.2018, 20:19   #6
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 13,109
Репутация: 2237
По умолчанию

Что не понятно? Вы не можете простой select на выбор имен/логинов пользователей написать?

Вы бы хоть структуру своей базы показали...
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 25.12.2018, 10:26   #7
Darius88
Новичок
Джуниор
 
Регистрация: 23.12.2018
Адрес: Барнаул
Сообщений: 12
Репутация: -8
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Что не понятно? Вы не можете простой select на выбор имен/логинов пользователей написать?

Вы бы хоть структуру своей базы показали...
Вот код сам, но при компиляции выдает фигню, так же при переводе из типа данных LPWSTR в тип данных string то же самое, все на скринах.
Код:

#include "pch.h"
#include <stdlib.h>
#include <windows.h>
#include <iostream>
#include <lm.h>
#include <clocale>
#include <fstream>
#include <string>
#include <assert.h>

#pragma comment (lib, "netapi32.lib")
using namespace std;



int main()
{
	setlocale(LC_CTYPE, "rus");

	USER_INFO_0 *user_list;
	DWORD a, b;
	cout << "Список польователей\n";
	NetUserEnum(NULL, 0, FILTER_NORMAL_ACCOUNT, (LPBYTE*)&user_list, MAX_PREFERRED_LENGTH, &a, &b, NULL);
	std::ofstream out;          // поток для записи
	out.open("E:\\hello.txt");
	std::string line;
	std::ifstream in("D:\\hello.txt");
	for (DWORD i = 0; i < a; ++i)
	{
		char buffer[20];

		wprintf(L"User name: %s\n", user_list[i].usri0_name);
		size_t wcstombs((buffer, user_list[i].usri0_name, 20));
		string j = string(buffer);
		cout << j;
		out << user_list[i].usri0_name << std::endl;
		while (getline(in, line))
		{
			std::cout << line << std::endl;
		}

	}
	out.close();
	in.close();
	/*
	cout << "\nИнформация о польователях\n";
	USER_INFO_2 *uii;
	NET_API_STATUS ret_status; // код возврата из функции
	for (DWORD i = 0; i < 5; i++)
	{
		ret_status = NetUserGetInfo(NULL, user_list[i].usri0_name, 1, (LPBYTE*)&uii);
		wprintf(L"User name: %s\n", uii->usri2_name);
		wprintf(L"User commemnt: %s\n", uii->usri2_comment);
	}

	NetApiBufferFree(uii);


	cout << "\nСписок групп и информация\n";
		GROUP_USERS_INFO_0 *ui; // информация о группах
		DWORD entries_read; // количество прочитанных групп
		DWORD total_entries; // общее количество групп
		NET_API_STATUS ret_status1; // код возврата из функции
			for (DWORD i = 0; i < 1; i++)
				{
					ret_status1 = NetUserGetGroups(NULL, user_list[i].usri0_name, 0, (LPBYTE*)&ui, MAX_PREFERRED_LENGTH, &entries_read, &total_entries);
						for (DWORD j = 0; j < 5; j++)
							wprintf(L"%s: %s\n", user_list[j].usri0_name, ui[j].grui0_name);
				}
		NetApiBufferFree(ui); // освобождаем буфер
	NetApiBufferFree(user_list);*/
	system("pause");
	return 0;
}

Изображения
Тип файла: jpg Снимок.JPG (18.1 Кб, 28 просмотров)
Тип файла: png Screenshot_25.png (22.7 Кб, 26 просмотров)

Последний раз редактировалось Darius88; 25.12.2018 в 10:37.
Darius88 вне форума   Ответить с цитированием
Старый 25.12.2018, 11:54   #8
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 13,109
Репутация: 2237
По умолчанию

А причем тут базы данных?
Зачем гонять из юникода в анси?
Почему анси версию string инициализируете юникод-буфером?
Почему юникодовскую строку выводи в анси поток просто так?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 25.12.2018, 13:16   #9
Darius88
Новичок
Джуниор
 
Регистрация: 23.12.2018
Адрес: Барнаул
Сообщений: 12
Репутация: -8
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А причем тут базы данных?
Зачем гонять из юникода в анси?
Почему анси версию string инициализируете юникод-буфером?
Почему юникодовскую строку выводи в анси поток просто так?
Ответ прост - я не знаю
Darius88 вне форума   Ответить с цитированием
Старый 25.12.2018, 13:25   #10
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 13,109
Репутация: 2237
По умолчанию

Ну так откройте справку и посмотрите пример https://docs.microsoft.com/en-us/win...ss-netuserenum
И про NetApiBufferFree не надо забывать.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где в реестре хранятся атрибуты учетных записей MAE$TRO Windows 1 04.11.2015 01:11
Получить список админиских учетных записей Windows garuna Общие вопросы Delphi 1 19.09.2015 20:37
Как получить список учетных записей компьютера? garuna Общие вопросы Delphi 0 18.09.2015 14:54
База данных на 200000 записей и более il13 БД в Delphi 0 02.12.2009 19:20
Экспорт учетных записей windows server 2003 ru3000 Безопасность, Шифрование 1 27.07.2009 16:30


22:35.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru