Chiunque abbia lavorato, anche marginalmente, alla gestione di NT avrà avuto modo di apprezzare la facilità di utilizzo e la potenza di due noti strumenti integrati per la gestione degli account del database SAM, lo User Manager e il suo fratello maggiore, lo User Manager for Domains.
Esistono comunque altre utility, che interagiscono con il SAM e che offrono la gestione di utenti e gruppi al di fuori degli User Manager, ma la loro difficoltà di utilizzo 'puro' è sicuramente maggiore.
Gli amministratori conoscono bene almeno due di queste utility, incluse nel Resource Kit di NT, che, a partire da comandi posti in file di testo, riescono a svolgere egregiamente molti di quei compiti in genere svolti dagli User Manager: l'Addusers.exe e lo Usertogrp.exe.
L'amministratore non c'è...
Nonostante questi programmi riescano a soddisfare diverse esigenze amministrative legate alla gestione degli account, non sempre però possono essere disponibili all'amministratore di sistema o alle figure delegate all'amministrazione degli utenti e dei gruppi. Inoltre, le stesse figure che riescono a creare e distruggere account con cognizione di causa, possono non essere al momento disponibili.
Può venire in mente allora di volere offrire la gestione degli account anche a chi non vuole, non può, non deve o non sa usare lo User Manager - per non parlare di Addusers - , ma vuole comunque potere aggiungere o, anche, eliminare utenti dal database SAM.
Ancora. Può capitare di volere aggiungere utenti automaticamente, ad es. per la registrazione free online o per altri task che non possono aspettare la disponibilità delle risorse umane 'competenti'.
Una soluzione
Tramite una pagina ASP è possibile sviluppare una semplice e piuttosto sicura interfaccia per la gestione degli account via web, adattabile al contesto in cui sarà utilizzata.
Gli ingredienti base di questa ricetta - da condire opportunamente, ma di certo ghiotta nella sua essenza (si pensi infatti al proliferare di abbonamenti free e di sottoscrizioni online con procedure automatizzate) - saranno semplicemente:
- un form HTML user-friendly tramite il quale raccogliere i dati
- il FileSystemObject che li scriverà in file di testo
- Addusers e Usertogrp che li leggeranno
- il componente ASPexec di ServerObjects Inc. che, infine, darà una scossa ai due programmi appena citati e li metterà opportunamente in moto.
Il codice
Innanzi tutto si può creare una pagina che richiami se stessa nella fase di submitting. Ovviamente sarà solo una scarna pagina d'esempio e mancheranno i controlli e tutte le implementazioni necessarie che in un contesto reale bisogna utilizzare.
Ci sono molti modi di iniziare una pagina Asp, uno dei quali potrebbe essere:
<%@ enablesessionstate=false %><%option explicit%><%response.buffer=true%>
Vengono dichiarate e inizializzate alcune variabili.
<% Dim nomeInserito, cognomeInserito, login, passwd, group nomeInserito = Request.Form("Nome") cognomeInserito = Request.Form("Cognome") login = Request.Form("Username") passwd = Request.Form("Password") group = Request.Form("Gruppo") Dim nomeCompleto nomeCompleto = nomeInserito & " " & cognomeInserito %>
Viene svolto un controllo condizionale per valutare se dovrà essere mostrato il form:
<% if nomeInserito = "" _ Or _ cognomeInserito = "" _ Or _ login = "" _ Or _ passwd = "" _ Or _ group= "" _ then %>
Questa è la parte che sarà mostrata nel caso in cui il form non sia stato compilato in ogni sua parte. In questo caso si è scelto di richiamare un file che contiene l'HTML e qualche traccia di codice per valorizzare i campi:
<!-- #include virtual="percorsoDirectory/corpoPagina.asp" -->
Nel caso in cui tutti i campi risultino compilati, sarà invece eseguita la parte seguente dello script:
<% else %>
Viene creata un'istanza del FileSystemObject che servirà a generare appropriatamente i file di testo dai quali Addusers e Usrtogrp ricaveranno i dati.
<% Dim FileComandi Set FileComandi = Server.CreateObject("Scripting.FileSystemObject") %>
Attenzione: Questo articolo contiene un allegato.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.