Posted on

Virtualizzazione for dummies

Quando accendete il vostro computer vi trovate in genere di fronte a Windows. Windows è il programma principale del computer, senza il quale il computer sarebbe una scatola vuota. Viene chiamato Sistema Operativo. Dentro a Windows avete decine di altri programmi che usate quotidianamente.

L’hardware del vostro computer (l’hard disk, la ram, il processore, etc) sono stati costruiti per ospitare un solo sistema operativo. In pratica è come comprare un motorino che quindi può trasportare solo voi. Il motorino è il computer …. voi rappresentate windows.

I SERVER ieri

I server sono grossi computer, molto potenti. Fino a qualche anno fa venivano venduti anche’essi con un sistema operativo, di solito Windows Server o Linux Server. I server eseguono diverse applicazioni molto importanti , rendendole fruibili ai client cioè ai vostri computer. Per esempio, i server ospitano i siti internet a cui vi collegate; dentro ogni server ci sono migliaia di siti internet diversi a cui si collegano milioni di utenti (Voi). Oppure ospitano tutti i file di una azienda : i file della produzione, della progettazione, della amministrazione : tutti i vari reparti aziendali trovano nel server il materiale con cui lavorare.

Per una azienda quindi il server è il computer più importante: se si rompe questo non lavora più nessuno fintanto che non viene riparato. Se si rompe un server che ospita siti internet, tutti i siti saranno irraggiungibili.

Per ovviare a queste problematiche si è pensato di dividere il carico di lavoro dei server : ogni server ospita un solo sito internet; esiste un server per i files del reparto amministrazione e un server per la progettazione, etc. Se si rompe un server, solo il servizio che stava dando verrà a mancare: le altre funzioni risultano attive sugli altri server.

Per ottenere tutto ciò ci è venuto in aiuto un miglioramento delle tecnologie hardware e il concetto di virtualizzazione.

I SERVER oggi e la VIRTUALIZZAZIONE

Oggi i server sono computer ancora più potenti rispetto al passato ed alle risorse richieste dalle applicazioni moderne. I server oggi vengono venduti senza sistema operativo : per continuare nel nostro parallelismo è come comprare un camion vuoto.

I server sono così potenti che possono tenere al loro interno decine di sistemi operativi diversi cioè di macchine che fanno azioni diverse: ognuna di queste macchine viene chiamata “macchina virtuale”. Si realizza così una netta separazione tra ambienti : ogni macchina svolge una sola funzione ben definita e “mancando” la macchina viene meno una sola funzione.

I problemi arrivano solo se …. si rompe il camion, ma anche qui ci sono delle tecniche per mitigare i disagi.

Posted on

installing sqlserver 2008: Performance counter registry hive consistency check failed

if, during installation of Sql Server 2008 you have this error : Performance counter registry hive consistency check failed

First try

Open a command prompt with administrator user rights (Run as Administrator)

cd c;/windows/system32
lodctr /R:PerfStringBackup.INI

Restart the system and try again to install sqlserver

Second attempt

Open a command prompt with administrator user rights (Run as Administrator). Lunch install without that feature

C:\MyFolder\SQLEXPR_x86.exe /ACTION=install /SKIPRULES=PerfMonCounterNotCorruptedCheck
Posted on

Sicurezza del computer

L’antivirus non fornisce sicurezza

Se avete montato un antivirus sul vostro computer non siete al sicuro.La minaccia dei virus non si combatte solo con l’antivirus. L’antivirus, semplificando, è un contenitore di tutti i virus scoperti nel mondo fino ad oggi; l’antivirus controlla i vostri file confrontandoli con il suo contenitore : quando vede che il file corrisponde ad uno di quelli immagazzinati vi segnala e blocca la minaccia.

E’ quindi chiaro che l’antivirus è efficace solo se trova un virus che era già stato segnalato da qualcun altro nel mondo. Non può fare niente per le nuove scoperte.

Ci sono inoltre dei virus che non si manifestano come tali se non dopo che l’utente, Voi, li avete attivati. Sono tutti quei virus che vi arrivano come allegati nelle email e che passano quindi la scansione dell’antivirus. Quando ci cliccate sopra, state lanciando un programma: il computer non può autonomamente decidere che quel programma, lanciato da voi, sia un programma malevolo; siete voi che comandate e quindi siete voi che infettate.

Consigli per una buona protezione del computer

  • Usate un servizio di email dotato di un sistema antispam e antivirus efficace. Diminuirà il numero di file che arrivano.
  • Pensate. Leggete la email, non cliccate sui link senza sapere cosa state facendo. Passate con il mouse sopra il link senza spingerlo : vedrete l’indirizzo al quale si collega e se l’indirizzo non centra niente con il soggetto che vi ha mandato la email… è un virus
  • Pensate. Leggete bene i pulsanti nei siti in cui navigate, non rispondete sempre “si” o “consento” senza aver riflettuto.
  • Usate Office 365. La maggior parte dei virus opera dentro i file di Word, Excel che vi mandano. Office 365 con le impostazioni di sicurezza attivate rende i virus non eseguibili.
  • Backup : fate un backup periodico dei vostri dati su un supporto vicino a voi (chiavette usb, un altro computer, sistemi nas)
  • Backup su Cloud : fate un backup periodico in un posto “lontano” dal vostro computer: il cloud è in questo caso, uno spazio su internet in cui memorizzare i vostri dati

Come vedete, tra i consigli, non abbiamo citato l’antivirus….. ma male non può certo fare.

Ricorda che :

L’UNICO ANTIVIRUS EFFICACE SEI “TU

E noi ti possiamo aiutare. Contataci alla 051-790428 o alla email info@mecdata.it. Metteremo al sicuro i tuoi dati

  • Usa il nostro sistema email, velocissimo, sicuro e sempre disponibile e aggiornato su ognuno dei tuoi dispositivi.
  • Affidati a noi per la gestione della tua licenza di Office 365.
  • Affidati a noi per la costruzione del nostro economico sistema di backup in locale ed in Cloud
  • Permettici di insegnarti ad usare al meglio e in maniera più consapevole il tuo computer.
Posted on

Token based authentication in ASP.NET Web API

Token based authentication

Nella “Token based authentication”, l’applicazione client invia prima una richiesta all’endpoint del server di autenticazione con le credenziali dell’utente; se il nome utente e la password sono corretti, il server di autenticazione invia un token al client come risposta. Questo token contiene dati sufficienti per identificare un determinato utente e un tempo di scadenza. L’applicazione client utilizza quindi il token per accedere alle risorse nelle richieste successive fino a quando il token risulta ancora valido (non scaduto).

Classe per validare le richieste del client

Aggiungete una classe come questa :

using Microsoft.Owin.Security.OAuth;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNet.Identity.Owin;


namespace Mysite.Helpers
{
    public class MysiteAuthorizationServerProvider : OAuthAuthorizationServerProvider
    {
        public override async Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
        {
            context.Validated(); // 
        }

        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            var userManager = context.OwinContext.GetUserManager<ApplicationUserManager>();
            var user = await userManager.FindAsync(context.UserName, context.Password);
            if (user == null)
            {
                context.SetError("invalid_grant", "The user name or password is incorrect.");
                return;
            }
            ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager,
            OAuthDefaults.AuthenticationType);

            context.Validated(oAuthIdentity);
        }
    }
}

Per attivare questa classe andate nel file App_Start/Startup.Auth.cs e aggiungete alla fine del metodo ConfigureAuth questo codice

var myProvider = new  MysiteAuthorizationServerProvider();
            OAuthAuthorizationServerOptions options = new OAuthAuthorizationServerOptions
            {
                AllowInsecureHttp = true,
                TokenEndpointPath = new PathString("/token"),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
                Provider = myProvider
            };
            app.UseOAuthAuthorizationServer(options);
            app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());

In cui si definisce il link http://mysite/token che restituisce un token di durata 1 giorno.

Dovrete aggiungere nel file il riferimento

using Microsoft.Owin.Security.OAuth;

E’ necessario aggiungere un metodo all’autenticazione. Andate nel file IdentityModel.cs e aggiungete questo metodo :

public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager,
            string authenticationType)
        {
           var userIdentity = await manager.CreateIdentityAsync(this, authenticationType);
           return userIdentity;
        }

TEST CON POSTMAN

Per testare il tutto facilmente potete usare Postman .

Dovrete creare con Postman una chiamata post sul vostro link http://mysite/token. Nell’headers inserite la dicitura che vedete in figura :

Nel Body inserite il tipo di autneticazione (password) il vostro username e la vostra password.

Spingete “Send”. Se tutto ha funzionato riceverete il token

Utilizzo del Token

Una volta che il client ha ricevuto il token lo può utilizzare per tutte le successive operazioni senza dover passare lo username e la password: va passato solo il token che contiene queste informazioni. Facciamo una prova, creando un metodo che richiede autenticazione all’interno di un controller :

using System;
using System.Web.Http;

namespace MySite.Controllers
{
    public class SampleController : ApiController
    {
       [Authorize]
        [HttpGet]
        public IHttpActionResult GetForAuthenticate()
        {
            var identity = (ClaimsIdentity)User.Identity;
            return Ok("Hello " + identity.Name);
        }
   }
}

Usando postman, fate una chiamata GET al link : http://MySite/api/Sample/GetForAuhenticate

Dovrete passare al link il token che avete ottenuto qualche istante prima (nel nostro esempio è valido per 1 giorno). Per farlo in postman aggiungete la chiave Authorization con valore la parola Bearer seguita dal token.

THE END

Posted on

add Web API to an asp.net mvc site

Install the Web API Client Libraries

Use NuGet Package Manager to install the Web API Client Libraries package :

  • Microsoft.AspNet.WebApi.Client
  • Microsoft.AspNet.WebApi.Core
  • Microsoft.AspNet.WebApi.WebHost

Define a Web API Routing Configuration

Add App_Start\WebApiConfig.cs

using System.Web.Http;

class WebApiConfig
{
    public static void Register(HttpConfiguration configuration)
    {
        config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{action}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
    }
}

Register the WebAPI Routing Configuration

If you added a new WebApiConfig.cs file, you need to register that on your Web Application’s main configuration class.

Import namespace System.Web.Http in Global.asax.cs.

Add this line before the registration of your classic routing

//api routing (before)
GlobalConfiguration.Configure(WebApiConfig.Register);
//existing normal route
RouteConfig.RegisterRoutes(RouteTable.Routes);

Create a sample Web API Controller

Create a new controller

using System;
using System.Web.Http;

namespace MySite.Controllers
{
    public class SampleController : ApiController
    {
       [HttpGet]
       public String Test()
       {
         return "Hello World!";
       }
   }
}

Based on the api routing you should call this method in your browser using

http://MySite/api/Sample/Test

with this result

<string xmlns=”http://schemas.microsoft.com/2003/10/Serialization/”>Hello World!</string>

Posted on

problemi nella ricerca di windows 10

Da mercoledì 5 Febbraio 2020 ci sono dei problemi nella ricerca di windows, lo spazio sulla barra in basso a sinistra in cui cercate i programmi: quando andate in ricerca la finestra dei risultati vi compare totalmente nera.

La ricerca di Windows cerca, in base a ciò che scrivete, i programmi installati sul vostro computer, i vostri file e tutto quello disponibile in rete attraverso il motore di ricerca Microsoft Bing. E’ proprio in Bing che risiede il problema che causa la schermata nera in ricerca.

Soluzione

Per risolvere dovete portare delle modifiche nel registro di Windows , cioè nel programma in cui sono conservate tutte le informazioni e impostazioni del vostro computer : fate questa operazione con molta calma perché potreste compromettere l’intero sistema in caso di errore.

  • Aprite il registro di windows. Non funzionando la ricerca per farlo dovrete usare una combinazione di tasti sulla tastiera : dovete spingere il pulsante con l’icona di Windows 10 (il pulsante con i quattro quadrati neri alla sinistra della barra spaziatrice) ed il tasto R, insieme.
  • Si apre una finestra con scritto “Esegui”: scrivete regedit e spingete OK.
  • Sulla sinistra vi trovate un menu ad albero con diversi percorsi. Dovrete seguire questo percorso : HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Ricerca (l’ultima parola “Ricerca”, potrebbe essere scritta in inglese “Search”).
  • In questa cartella “Ricerca” oppure “Search” vi trovate sulla destra una serie di voci. Dovrete cercare la voce “BingSearchEnabled”. Se non la vedete posizionate il mouse in un punto qualsiasi tra le voci, tasto destra e spingete nuova DWORD 32 bit. Chiamatela appunto BingSearchEnabled con valore 0. Se la voce esiste ma non è a 0, mettetela a 0.
  • Dovrete fare la stessa cosa anche per la voce CortanaConsent
  • Riavviate
Posted on

prerequisites to access azure storage from powershell

azure

In order to use Microsofoft Azure Storage from PowerShell you need to Install the Azure PowerShell module.

Open power shell as Administrator.

Azure PowerShell requires PowerShell version 5.0. To check the version of PowerShell running on your machine, run the following command:

$PSVersionTable.PSVersion

Run the following command in an elevated session

Install-Module -Name AzureRM -AllowClobber