Автоматизація реєстрації користувачів

Інформаційне забезпечення, вхідні та вихідні дані. Організаційно-інформаційна сутність задачі, програмне та технічне забезпечення. Керівництво користувача, системного програміста. Додаткові значення "userAccountControl". Загальний вид коду реєстрації.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 03.01.2014
Размер файла 800,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Вступ

Active Directory - LDAP-сумісна реалізація інтелектуальної служби каталогів корпорації Microsoft для операційних систем родини Windows NT. Active Directory дозволяє адміністраторам використовувати групові політики (GPO) для забезпечення подібного налаштування користувацького робочого середовища, розгортати ПЗ на великій кількості комп'ютерів (через групові політики або за допомогою Microsoft Systems Management Server 2003 (або System Center Configuration Manager)), встановлювати оновлення ОС, прикладного та серверного ПЗ на всіх комп'ютерах в мережі (із використанням Windows Server Update Services (WSUS); Software Update Services (SUS) раніше). Active Directory зберігає дані і налаштування середовища в централізованій базі данних. Мережі Active Directory можуть бути різного розміру: від кількох сотень до кількох мільйонів об'єктів.

Microsoft Windows Server 2008, іноді скорочено "Win2k8» або "W2K8" (кодове ім'я «Longhorn Server») - версія серверної операційної системи від Microsoft. Запущений у виробництво 4 лютого 2008 року і офіційно випущений 27 лютого 2008, він є наступником Windows Server 2003, випущений майже п'ять років тому.

Другий реліз, названий Windows Server 2008 R2, був запущений у виробництво на 22 липня 2009 року. Як Windows Vista і Windows 7, Windows Server 2008 заснований на Windows NT 6.x. Ця версія замінює Windows Server 2003 як представник операційних систем покоління Vista (NT 6.x).

Система призначена для полегшення процесу реєстрації користувачів в базі даних Active Directory.

Система працює з урахування специфіки та політики безпеки Windows Server 2008R2 і Windows Active Directory.

Для автоматизації та оптимізації роботи системних адміністраторів кафедри АСОІУ система підтримує реалізацію таких функцій, що допомагають полегшити процес реєстрації користувачів в базі даних Active Directory:

створення облікового запису в базі даних Active Directory;

заповнення анкети персональних даних користувача;

розповсюдження на обліковий запис, певних групових політик(GPO);

відправка на електронну пошту користувача листа з «Правилами поведінки в аудиторіях кафедри» та «Правилами користування обладнанням кафедри».

Користувач має можливість: ознайомитись з правилами кафедри, заповнити свої персональні дані, переглянути контактну інформацію з технічної підтримкою кафедри.

Адміністратор має можливість: змінити GPO, що розповсюджуються на обліковий запис користувача, змінити параметри облікового запису, вміст листа що відправляється на пошту користувача.

На момент розробки даної системи не було знайдено подібних систем.

Система «Автоматизація реєстрації користувачів» розробляється для полегшення процесу створення облікових записів користувачів в базі даних Active Directory.

Цілями створення даної системи є:

оптимізація роботи системних адміністраторів;

автоматизація створення облікових записів користувачів.

Для реалізації поставлених цілей система повинна рішити наступні задачі:

створення зручного, легкого та зрозумілого у користуванні зовнішнього інтерфейсу;

розробка програми, що буде створювати облікові записи користувачів та наділяти їх відповідними правами.

У даному розділі були розглянуті проаналізовані та поставлені основні цілі для створення системи.

Проведена постановка задачі для системи.

Проведений опис діяльності та описані функціональні можливості системи для автоматизації користувачів Active Directory.

При аналізі існуючих рішень було виявлено та проаналізовано декілька розробок.

Жодна з них повністю не задовольнили вимоги до системи, що і спонукало до створення даної розробки.

Інформаційне забезпечення

Вхідні дані

Дані вводяться в систему користувачем, через веб-сторінку.

Дані, що надходять від користувача:

ім'я;

прізвище;

номер залікової книжки;

пароль;

адреса електронної пошти.

Це дозволяє створити обліковий запис в базі даних Active Directory та заповнити інформацію про користувача.

Вихідні дані

Вихідною інформацією є повідомлення про успішну реєстрацію користувача в базі даних Active Directory та створений обліковий запис користувача.

Висновки до розділу

У даному розділі був приведений структурний опис первісних даних системи, запропоновані макети виглядів вигляду веб-сторінки в якості вихідних даних.

Постановка задачі

Організаційно-інформаційна сутність задачі

Спочатку кожного навчального року, першокурсники повинні пройти процес реєстрації особистих облікових записів в базі даних Active Directory, які в подальшому їхньому навчанні будуть використовуватись для роботи в комп'ютерних аудиторія кафедри. Дана програма створена для того, щоб знизити затрати часу на цей процес та підвищити ефективність роботи системних адміністраторів.

Об'єкти представляють собою окремі сутності (користувача, комп'ютер, принтер, програму або спільну мережеву папку) і їх атрибути. Об'єкти також можуть бути контейнерами для інших об'єктів. Об'єкт унікально ідентифікується своїм ім'ям і має набір атрибутів:

характеристик;

даних, які об'єкт може містити.

Програмне та технічне забезпечення

Засоби розробки

При створенні даного програмного продукту були використані такі засоби програмування як Microsoft Visual Studio 2010 (ASP .NET) та ScriptEditor.

Для створення програми, що працює даними Active Directory використовувалась мова програмування C#. Головною перевагою C# в створенні даної системи - її пристосованість до роботи з Microsoft AD, а саме легке управління об'єктами бази даних AD.

Для створення графічної оболонки (веб-сторінки) використовувалась мова розмітки HTML/CSS та JavaScript - для динамічної зміні змісту сторінки.

Загальні вимоги до технічного забезпечення

Даний програмний продукт являє собою систему, що створює облікові записи користувачів в базі даних AD.

Для правильної роботи програми до складу технічних засобів повинні входити:

a) ПК під управлінням однієї з перелічених операційних систем: Windows XP/Vista/7/8, Linux, Mac OS;

b) Технічні параметри ПК повинні задовольняти перелічені нижче:

Процесор з тактовою частотою не нижче 1.6 ГГц;

Достатній об'єм оперативної пам'яті (не менше 512 МБ);

Широкий канал підключення до мережі Інтернет;

Браузер (Google Chrome, Opera, Mozilla Firefox);

c) Технічні параметри сервера:

Процесор з тактовою частотою не нижче 1.6 ГГц;

Достатній об'єм оперативної пам'яті (не менше 512 МБ);

Широкий канал підключення до мережі Інтернет;

Встановлений IIS Web;

Висновки до розділу

Розглянуто основні особливості розробки програм для роботи з AD за допомогою мови програмування C#.

До системи, що розробляється були поставлені мінімальні технічні вимоги для функціонування системи.

Керівництво користувача

Для запуску даної системи потрібно відкрити браузер та перейти за вказаним інтернет адресом. При відкриті веб-сторінки, користувачу буде відображено форму з «Правилами кафедри АСОЇУ». Вигляд даної форми наведено на рисунку 1.

Рисунок 1 - Блок ознайомлення з «Правилами кафедри»

Перехід до блоку заповнення персональної інформації користувача здійснюється після натиснення кнопки «Далі», що знаходиться на правій стороні форми. Після натиснення перед вами з'явиться анкета зображена на рисунку 2.

Правила вводу персональних даних:

Ім'я та Прізвище повинні бути введені латиницею, перші букви мають бути великими;

Номер залікової книжки повинен бути введений в такому форматі: isXXXX/ipXXXX, де is/ip - напрямок навчання, XXXX - номер заліковки;

Пароль повинен містити мінімум 8 символів, серед яких мають бути великі та маленькі літери та цифри;

Рисунок 2 - Блок заповнення персональних даних

При наступному натисненні кнопки «Далі» користувач перейде до блоку, де він має засвідчитись, що всі введені ним дані є коректними. Приклад показаний на рисунку 3.

Також користувач має право проходити процедуру реєстрації на англійській мові.

Рисунок 3 - Блок перевірки даних

Наступне натискання кнопки «Далі» відправить запит на сервер і якщо дані є вірними створить користувача. Також на електронну адресу користувача буде надіслано повідомлення з його персональними даними та «Правилами кафедри АСОІУ».

користувач програміст керівництво

Керівництво системного програміста

Для коректної роботи системи потрібно:

Технічні параметри сервера:

Процесор з тактовою частотою не нижче 1.6 ГГц;

Достатній об'єм оперативної пам'яті (не менше 512 МБ);

Широкий канал підключення до мережі Інтернет;

На сервері повинна бути встановлена операційна система Windows Server 2008R2 і піднятий сервіс IIS Web.

IIS (Internet Information Services, до версії 5.1 - Internet Information Server) - це набір серверів для декількох служб Інтернету від компанії Майкрософт. IIS поширюється з операційними системами родини Windows NT.

Основний компонент IIS - веб-сервер, який дозволяє розміщувати в Інтернет сайти. IIS підтримує протоколи HTTP, HTTPS, FTP, POP3,SMTP, NNTP. IIS другий за популярністю веб-сервер за кількістю сайтів, після Apache HTTP Server. За даними компанії Netcraft на11.10.2007, понад 37.13% сайтів обслуговується веб-сервером IIS.

Даний сервіс встановлюється з офіційного сайту Microsoft: http://www.microsoft.com/en-us/download/details.aspx?id=1038

Після оснащення сервера вказаним вище програмним забезпеченням на ньому можна розгортати дану систему згідно з інструкціями Windows.

Керівництво програміста

Для створення даної системи використовувались Microsoft Visual Studio 2010 Professional і Sublime 2.

Код мовою C#, що виконує реєстрацію користувачів на сервері:

//e-mail

//========================================

MailMessage mail = new MailMessage();

SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

mail.From = new MailAddress("asoiu.kpi@gmail.com");

mail.To.Add(email.Text);

mail.Subject = "Test Mail";

mail.Body = " Name: " + studname.Text + "\n Surname: " + studsurname.Text + "\n login: " + recordbook.Text

+ "\n Password: " + pass.Text;

SmtpServer.Port = 587;

SmtpServer.Credentials =

new System.Net.NetworkCredential("asoiu.kpi@gmail.com", "fiot_asoiu");

SmtpServer.EnableSsl = true;

SmtpServer.Send(mail);

//AD

//========================================

string connectionPrefix = "LDAP://10.18.16.13";

DirectoryEntry dirEntry = new DirectoryEntry(connectionPrefix);

DirectoryEntry newUser = dirEntry.Children.Add("CN=" + studname.Text + " " + studsurname.Text, "user");

//=======

newUser.Properties["samAccountName"].Value = recordbook.Text;

newUser.Invoke("Put", new object[] { "Description", recordbook.Text });

newUser.Properties["displayName"].Value = studname.Text + " " + studsurname.Text;

newUser.Properties["givenName"].Value = studname.Text;

newUser.Properties["sn"].Value = studsurname.Text;

newUser.Properties["mail"].Value = email.Text;

//=======

newUser.CommitChanges();

//=======

newUser.Invoke("SetPassword", new object[] { pass.Text });

newUser.Invoke("Put", new object[] { "userPrincipalName", recordbook.Text + "@asoiu.ntu-kpi.kiev.ua" });

//=======

newUser.CommitChanges();

//=======

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "10.18.16.13");

UserPrincipal principal = UserPrincipal.FindByIdentity(ctx, recordbook.Text);

principal.UserCannotChangePassword = true;

principal.Save();

//=======

newUser.Properties["userAccountControl"].Value = 0x10002;

newUser.CommitChanges();

dirEntry.Close();

newUser.Close();

MessageBox.Show("Registration was complete");

Додаткові значення “userAccountControl”:

UF_TEMP_DUPLICATE_ACCOUNT = 0x0100,

UF_NORMAL_ACCOUNT = 0x0200,

UF_INTERDOMAIN_TRUST_ACCOUNT = 0x0800,

UF_WORKSTATION_TRUST_ACCOUNT = 0x1000,

UF_SERVER_TRUST_ACCOUNT = 0x2000,

UF_DONT_EXPIRE_PASSWD = 0x10000,

UF_SCRIPT = 0x0001,

UF_ACCOUNTDISABLE = 0x0002,

UF_HOMEDIR_REQUIRED = 0x0008,

UF_LOCKOUT = 0x0010,

UF_PASSWD_NOTREQD = 0x0020,

UF_PASSWD_CANT_CHANGE = 0x0040,

UF_ACCOUNT_LOCKOUT = 0X0010,

UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED = 0X0080,

Код форми реєстрації:

function $(str) { return document.querySelector(str) }

function hasClass(el, name) {

return new RegExp('(\\s|^)'+name+'(\\s|$)').test(el.className);

}

function addClass(el, name)

{

if (!hasClass(el, name)) { el.className += (el.className ? ' ': '') +name; }

}

function removeClass(el, name)

{

if (hasClass(el, name)) {

el.className=el.className.replace(new RegExp('(\\s|^)'+name+'(\\s|$)'),' ').replace(/^\s+|\s+$/g, '');

}

}

function getXmlHttp() {

var xmlhttp;

try {

xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

try {

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

} catch (E) {

xmlhttp = false;

}

}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {

xmlhttp = new XMLHttpRequest();

}

return xmlhttp;

}

var Scroller = {

posX: 0,

posY: 0,

content: null,

sizeX: 0,

sizeY: 0,

w:0,

h:0,

updatePosition: function(){

with (this) {

content.style.left=-posX*w+'px';

content.style.top=-posY*h+'px';

}

},

left: function(){

with (this) {

posX -= 1;

posX = (posX<0) ? 0: posX;

updatePosition()

}

},

right: function(){

with (this) {

posX += 1;

posX = (posX>sizeX-1) ? sizeX-1: posX;

updatePosition()

}

},

up: function(){

with (this) {

posY -= 1;

posY = (posY<0) ? 0: posY;

updatePosition()

}

},

down: function(){

with (this) {

posY += 1;

posY = (posY>sizeY-1) ? sizeY-1: posY;

updatePosition()

}

},

moveto: function(x,y) {

with (this) {

posY = y

posY = (posY<0) ? 0: posY

posY = (posY>sizeY-1) ? sizeY-1: posY

posX = x

posX = (posX<0) ? 0: posX

posX = (posX>sizeX-1) ? sizeX-1: posX

updatePosition()

}

},

init: function(x,y,sx,sy,width,height,contentSelector){

with (this) {

posX = x;

posY = y;

sizeX = sx;

sizeY = sy;

content = document.querySelector(contentSelector);

content.style.position='relative'

w=width

h=height

}

return this;

}

}

var scroll = null;

function Registration() {

var scriptAddres = 'http://localhost/index.php',

blocks = {},

selectors = {

'rules': '#rules',

'form': '#regBlock',

'formData': '#regFormData',

'langPanel': '#langPanel',

'confirm': '#confirm',

'nextBtn': '#nextBtn',

'canselBtn': '#CancelBtn',

'wait': '#wait',

'supportBtn': '#support',

'supportBlock': '#supportBlock',

'stepBar': '#stepBar',

'procWaiter': '#waiter',

'procError': '#error',

'procSuccess': '#success',

'support': '#supportBlock',

'backBtn': '#backBtn'

},

fieldSelectors = {

'name': '#Name',

'surname': '#SurName',

'group': '#Group',

'pass': '#Pass',

'pass2': '#CPass',

'mail': '#EMail'

},

fields = {},

warningCodes = {

'name': '',

'surname': '',

'group': '',

'pass': '',

'mail': ''

},

languageData = {

'ua': {

'name': 'Ім\'я',

'surname': 'Прізвище',

'group': 'Номер залікової книжки',

'pass': 'Пароль',

'pass2': 'Підтвердження паролю',

'mail': 'Електронна пошта',

'emptyName': 'Пусте поле ім\'я',

'emptySurName': 'Пусте поле прізвища',

'emptyGroup': 'Пусте поле номера залікової книжки',

'badGroup': 'Некоректний номер залікової книжки',

'emptyPass': 'Пусте поле паролю',

'badPass': 'Некоректний пароль',

'difPass': 'Паролі не збігаються',

'emptyMail': 'Пусте поле електронної пошти',

'badMail': 'Некоректна електронна пошта',

'wait': 'Будь ласка зачекайте',

'step1': 'Правила',

'step2': 'Заповнення даних',

'step3': 'Перевірка даних',

'step4': 'Обробка',

'rules': 'ua rules',

'support': 'ua support'

},

'eng': {

'name': 'Name',

'surname': 'Last name',

'group': 'Number of academic records',

'pass': 'Pass',

'pass2': 'Confirm Password',

'mail': 'Email Address',

'emptyName': 'Empty name',

'emptySurName': 'Empty last name',

'emptyGroup': 'Empty number of academic records',

'badGroup': 'Invalid academic record',

'emptyPass': 'Empty pass',

'badPass': 'bad pass',

'difPass': 'Different pass',

'emptyMail': 'Empty email',

'badMail': 'bad mail',

'wait': 'Please wait',

'step1': 'Rules',

'step2': 'Fill data',

'step3': 'Check data',

'step4': 'Processing',

'rules': 'eng rules',

'support': 'eng support'

}

},

language = 'ua',

mode = 'rules',

timerId = 0,

time = 0;

function hide(el){

el.style.display="none";

}

function show(el){

el.style.display="block";

}

function isBadStr() {

for (var key in arguments)

if (arguments[key]) return false

return true;

}

function warningCodeGet(value,flagVal,flag){

if (flag === undefined)

return (value) ? '': flagVal

else {

if (value)

return (flag) ? '': flagVal[0]

else return flagVal[1]

}

}

function checkEmail(){

var mail = fields.mail.value

var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

warningCodes.mail = warningCodeGet(mail,[languageData[language]['badMail'],

languageData[language]['emptyMail']],reg.test(mail))

return isBadStr(warningCodes.mail)

}

function checkNames(){

warningCodes.name = warningCodeGet(fields.name.value,languageData[language]['emptyName'])

warningCodes.surname = warningCodeGet(fields.surname.value,languageData[language]['emptySurName'])

return isBadStr(warningCodes.name,warningCodes.surname)

}

function checkPass() {

if (fields.pass.value==fields.pass2.value) {

var reg = /[^A-Za-z0-9!@#\$%\^&\*()_\+-=]/

var flag = !reg.test() && (fields.pass.value.length >= 8)

warningCodes.pass = warningCodeGet(fields.pass.value,[languageData[language]['badPass'],languageData[language]['emptyPass']],flag)

}

else warningCodes.pass = languageData[language]['difPass']

return isBadStr(warningCodes.pass)

}

function checkGroup() {

var group = $(fieldSelectors.group).value.toLowerCase()

group = group.replace('с','s')

group = group.replace('п','p')

group = group.replace('і','i')

if (group!=fields.group.value)

fields.group.value=group

warningCodes.group = warningCodeGet(group,[languageData[language]['badGroup'],

languageData[language]['emptyGroup']],

(group[0]=='i' && (group[1]=='p' || group[1]=='s') && group.length==6))

return isBadStr(warningCodes.group)

}

function check(){

var r = checkNames() + checkGroup() + checkPass() + checkEmail()

return (r<4) ? false: true

}

function removeToolTip(el){

removeClass(el.parentNode.parentNode.querySelector('.tool-tip'),'tool-tip-show')

addClass(el.parentNode,'input-correct')

}

function addToolTip(el,str){

removeClass(el.parentNode,'input-correct')

addClass(el.parentNode.parentNode.querySelector('.tool-tip'),'tool-tip-show')

el.parentNode.parentNode.querySelector('.tool-tip').innerHTML = str;

}

function applyLanguage(e){

if (typeof e != "string") {

language1 = e.target.getAttribute('data-lang')

}

else language1 = e

language = language1

if (!language) return;

for (var key in fields)

fields[key].parentNode.parentNode.querySelector('span').innerHTML = languageData[language][key]

check()

blocks.rules.innerHTML = languageData[language]['rules']

blocks.support.innerHTML = languageData[language]['support']

for (var key in warningCodes)

fields[key].parentNode.parentNode.querySelector('.tool-tip').innerHTML = warningCodes[key]

blocks.stepBar.innerHTML = languageData[language]['step'+(scroll.posX+1)]

blocks.wait.innerHTML = languageData[language]['wait']+' '+time

if (mode=='confirm')

{

blocks.confirm.innerHTML = languageData[language]['name'] + ': ' + fields.name.value + '<br>' +

languageData[language]['surname'] + ': ' + fields.surname.value + '<br>' +

languageData[language]['group'] + ': ' + fields.group.value + '<br>' +

languageData[language]['mail'] + ': ' + fields.mail.value + '<br>'

}

}

function fieldChecker(e){

check()

for (var key in warningCodes) {

if (e.target == fields[key] || (key=='pass' && e.target == fields['pass2']))

if (warningCodes[key]) {

addToolTip(fields[key], warningCodes[key])

if (key=='pass') removeClass(fields['pass2'].parentNode,'input-correct')

} else {

removeToolTip(fields[key]);

if (key=='pass') removeToolTip(fields['pass2']);

}

}

}

function waiterLoop(){

if (time == 0) {

blocks.wait.style.display='none'

blocks.nextBtn.disabled = false

clearInterval(timerId)

} else {

blocks.wait.innerHTML = languageData[language]['wait'] + ' ' + time;

time--;

}

}

function init() {

mode = 'rules'

for (var key in selectors)

blocks[key] = $(selectors[key])

for (var key in fieldSelectors)

fields[key] = $(fieldSelectors[key])

blocks.nextBtn.addEventListener('click',nextBtnClick)

blocks.supportBtn.addEventListener('click',supportBtnClick)

blocks.formData.addEventListener('keyup',fieldChecker)

blocks.backBtn.addEventListener('click',backBtnClick)

applyLanguage(language)

waiterLoop()

blocks.langPanel.addEventListener('click',applyLanguage)

timerId = setInterval(waiterLoop, 1000);

}

function supportBtnClick() {

if (scroll.posY==1) scroll.moveto(scroll.posX,0)

else {

blocks.supportBlock.style.left = (scroll.posX*blocks.supportBlock.offsetWidth)+'px';

scroll.moveto(scroll.posX,1);

}

}

function send() {

try {

mode="proc"

blocks.nextBtn.disabled = true

blocks.backBtn.disabled = true

var xmlhttp = getXmlHttp() // Создаём объект XMLHTTP

xmlhttp.open('POST', scriptAddres, true) // Открываем асинхронное соединение

xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') // Отправляем кодировку

//encodeURIComponent

var data = ''

function dataAdd(key,val) {

if (data) data += '&'

data += encodeURIComponent(key) + '=' + encodeURIComponent(val)

}

for (key in fields) {

if (key!='pass2')

dataAdd(key,fields[key].value)

}

hide(blocks.procError)

blocks.procError.style.opacity = 0

hide(blocks.procSuccess)

blocks.procSuccess.style.opacity = 0

//xmlhttp.onreadystatechange

xmlhttp.onreadystatechange = function() { // Ждём ответа от сервера

if (xmlhttp.readyState == 4) { // Ответ пришёл

if(xmlhttp.status == 200) { // Сервер вернул код 200 (что хорошо)

hide(blocks.procWaiter)

///////////////////////////////////////////////////////////

//check correct answer

///////////////////////////////////////////////////////////

//xmlhttp.responseText - то что вернул сервер

//к примеру если нам пришло число 30, то считаем что ответ некоректный

if (xmlhttp.responseText!=30)

{

blocks.procSuccess.innerHTML = xmlhttp.responseText

show(blocks.procSuccess)

blocks.procSuccess.style.opacity = 1

} else {

blocks.procError.innerHTML = "Incorrect answer"

show(blocks.procError)

blocks.procError.style.opacity = 1

blocks.backBtn.disabled = false;

}

}

}

if (xmlhttp.status == 0) {

hide(blocks.procWaiter)

blocks.procError.innerHTML = "Server don`t response"

show(blocks.procError)

blocks.procError.style.opacity = 1

blocks.backBtn.disabled = false;

}

}

xmlhttp.send(data) // Отправляем POST-запрос

}

catch(e) {

hide(blocks.procWaiter)

blocks.procError.style.opacity = 0

blocks.procSuccess.style.opacity = 0

hide(blocks.procSuccess)

blocks.procError.innerHTML = "Error: " + e.message

show(blocks.procError)

blocks.procError.style.opacity = 1

blocks.backBtn.disabled = false;

}

}

function nextBtnClick() {

if (scroll.posY==1) scroll.moveto(scroll.posX,0)

else

if (mode=='rules') {

//check time

mode='fillData'

scroll.moveto(1,0)

} else if (mode=='fillData') {

if (check())

{

for (var key in warningCodes)

removeToolTip(fields[key])

mode='confirm'

blocks.confirm.innerHTML = languageData[language]['name'] + ': ' + fields.name.value + '<br>' +

languageData[language]['surname'] + ': ' + fields.surname.value + '<br>' +

languageData[language]['group'] + ': ' + fields.group.value + '<br>' +

languageData[language]['mail'] + ': ' + fields.mail.value + '<br>'

scroll.moveto(2,0)

} else {

for (var key in warningCodes)

if (warningCodes[key]) addToolTip(fields[key], warningCodes[key])

else removeToolTip(fields[key])

}

} else if (mode=='confirm') {

hide(blocks.procError)

hide(blocks.procSuccess)

show(blocks.procWaiter)

scroll.moveto(3,0);

send()

}

blocks.stepBar.innerHTML = languageData[language]['step'+(scroll.posX+1)]

}

function backBtnClick() {

if (scroll.posY==1) scroll.moveto(scroll.posX,0)

else

switch (mode) {

case 'rules':

break

case 'fillData':

mode='rules'

scroll.moveto(0,0)

break

case 'confirm':

mode='fillData'

scroll.moveto(1,0)

break

case 'proc':

mode='confirm'

scroll.moveto(2,0)

blocks.nextBtn.disabled = false;

break;

}

blocks.stepBar.innerHTML = languageData[language]['step'+(scroll.posX+1)];

}

init();

}

window.onload = function(){

scroll = Scroller.init(0,0,4,2,410,416,"#scrollerContent")

//document.querySelector('#leftBtn').addEventListener('click',function(){ scroll.left() })

Registration();

//document.querySelector('#botBtn').addEventListener('click',function(){ scroll.down() })

//document.querySelector('#topBtn').addEventListener('click',function(){ scroll.up() })

}

Висновки

Даний проект присвячений опису етапів створення системи «Автоматизація реєстрації користувачів». Були розглянуті структурний опис первісних даних системи, запропоновані вигляди веб-сторінки в якості вихідних даних.

Під час створення даного проекту було досягнуто всіх цілей поставлених перед початком розробки.

Перелік посилань

1. ASP.NET MVC Framework с примерами на C# Стивен Сандерсон.

2. Pro ASP.NET 3.5 in C# 2008 Matthew MacDonald and Mario Szpuszta

3. Learning JavaScript Shelley Powers 2010

4. Pro JavaScript Techniques John Resig 2009

5. Пости / ASP .NET / Хабрахабр [Електронний ресурс] / Режим доступу: http://habrahabr.ru/hub/aspnet/posts/

Размещено на Allbest.ru


Подобные документы

  • Розробка системи, призначеної для автоматизації процесу реєстрації користувачів (студентів-першокурсників) в базі даних Active Directory. Інформаційне, програмне та технічне забезпечення проекту. Керівництво користувача та системного програміста.

    курсовая работа [603,6 K], добавлен 19.11.2013

  • База даних як сумісно використовуваний набір логічно зв'язаних даних, передбачений для задоволення інформаційних потреб. Програмне забезпечення, яке взаємодіє з прикладними програмами користувачів, апаратне забезпечення, дані, процедури і користувачі.

    реферат [160,9 K], добавлен 20.06.2010

  • Програмне забезпечення та шляхи автоматизації інформаційної системи управління школи. Побудова імітаційної моделі управлінських процесів за допомогою ППЗ MS Project. Розробка бази даних "Школа". Дослідження автоматизованого робочого місця секретаря.

    курсовая работа [210,9 K], добавлен 10.11.2012

  • Розробка та реалізація програмного рішення для автоматизації оптимального розподілу ресурсів підприємства з найменшими витратами, інформаційне і технічне забезпечення задачі. Функціональна структура та архітектура корпоративної інформаційної системи.

    курсовая работа [2,3 M], добавлен 17.04.2013

  • Класифікація програмного забезпечення, системне та прикладне забезпечення, інструментальні системи. Програмна складова комп'ютерної системи, опис алгоритмів розв'язання певної задачі. Класифікація операційних систем, основні групи прикладних програм.

    презентация [945,0 K], добавлен 01.04.2013

  • Характеристика "Турбо САП" - універсальної системи автоматизованого проектування керуючих програм для верстатів з ЧПК. Загальне призначення, програмне забезпечення, експлуатаційні можливості. Специфіка роботи з інтерактивною графічною оболонкою системи.

    контрольная работа [12,0 K], добавлен 07.10.2009

  • Економічна інформація, її види та властивості. Апаратне і програмне забезпечення ПК. Програмне забезпечення стаціонарних комп’ютерів. Комп’ютерні мережі, загальна характеристика глобальної мережі Інтернет. Напрямки використання комп’ютерної техніки.

    контрольная работа [28,0 K], добавлен 06.10.2011

  • Основні поняття щодо захисту програмного забезпечення. Класифікація засобів дослідження програмного коду: відладчики, дизасемблери, діскомпілятори, трасировщики та слідкуючі системи. Способи вбудовування захисних механізмів в програмне забезпечення.

    курсовая работа [41,7 K], добавлен 14.11.2010

  • Тенденції розвитку інформаційних технологій, зростання складності інформаційних систем, створюваних у різних галузях. Засоби, що реалізують CASE-технологію створення і супроводу інформаційних систем. Автоматизація розробки програмного забезпечення.

    реферат [21,5 K], добавлен 21.03.2011

  • Організаційно-функціональна структура школи, її апаратне та програмне забезпечення. Автоматизація обліку розрахунків плати за гуртожиток. Проектування необхідних таблиць для збереження інформації. Створення таблиці, запитів і звітів в режимі конструктора.

    курсовая работа [913,9 K], добавлен 17.08.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.