Локальные сети персональных компьютеров. Работа с сервером Novell NetWare


Листинг 26



Листинг 26

Программа для просмотра уровня // доступа рабочей станции // Файл baccess\baccess.cpp // // (C) A. Frolov, 1993 // =================================================== #include <stdlib.h> #include <stdio.h> #define WORD unsigned int #define BYTE unsigned char extern "C" int GetNetWareShellVersion(char *,char *, char *); extern "C" int GetBinderyAccessLevel(BYTE *, long *); extern "C" int GetBinderyObjectName(long, char*, WORD*); void main(void) { char MajorVersion=0; char MinorVersion=0; char Revision=0; int ccode; BYTE SecurityAccessLevel; long ObjectID; char ObjectName[48]; WORD ObjectType; printf("\n*BACCESS* (C) Frolov A., 1993\n"); // Проверяем присутствие сетевой оболочки asm push si GetNetWareShellVersion(&MajorVersion, &MinorVersion, &Revision); asm pop si if(MajorVersion == 0) { printf("\nОболочка NetWare не загружена\n"); return; } // Получаем свой идентификатор и уровень доступа GetBinderyAccessLevel(&SecurityAccessLevel, &ObjectID); // По идентификатору определяем свое имя ccode = GetBinderyObjectName(ObjectID, ObjectName, &ObjectType); // Если пользователь подключился к файл-серверу, // выводим его имя, идентификатор и тип if(!ccode) { printf("Пользователь %s, ID = %lX, Type = %d\n", ObjectName, ObjectID, ObjectType); } // Выводим права доступа на чтение printf("Права доступа на чтение:\t"); switch(SecurityAccessLevel & 0x0f) { case 0: printf("Anyone\t(не подключен к файл-серверу)\n"); break; case 1: printf("Logged\t(подключен к файл-серверу)\n"); break; case 2: printf("Object\t(подключен к файл-серверу " "с именем и паролем)\n"); break; case 3: printf("Supervisor\t(права супервизора)\n"); break; case 4: printf("NetWare\t(права Novell NetWare)\n"); break; } // Выводим права доступа на запись printf("Права доступа на запись:\t"); switch((SecurityAccessLevel >> 4) & 0x0f) { case 0: printf("Anyone\t(не подключен к файл-серверу)\n"); break; case 1: printf("Logged\t(подключен к файл-серверу)\n"); break; case 2: printf("Object\t(подключен к файл-серверу " "с именем и паролем)\n"); break; case 3: printf("Supervisor\t(права супервизора)\n"); break; case 4: printf("NetWare\t(права Novell NetWare)\n"); break; } }







Начало  Назад  Вперед