Aggiunta di ASP.NET Identity a un progetto Web Forms vuoto o esistenteAdding ASP.NET Identity to an Empty or Existing Web Forms Project

Questa esercitazione illustra come aggiungere ASP.NET Identity (il nuovo sistema di appartenenze per ASP.NET) a un'applicazione ASP.NET.This tutorial shows you how to add ASP.NET Identity (the new membership system for ASP.NET) to an ASP.NET application.

Quando si crea un nuovo progetto Web Form o MVC in Visual Studio 2017 RTM con singoli account, Visual Studio verrà installare tutti i pacchetti necessari e aggiungere tutte le classi necessarie per l'utente.When you create a new Web Forms or MVC project in Visual Studio 2017 RTM with Individual Accounts, Visual Studio will install all the required packages and add all necessary classes for you. Questa esercitazione illustrerà i passaggi per aggiungere il supporto di ASP.NET Identity per il progetto Web Form esistente o un nuovo progetto vuoto.This tutorial will illustrate the steps to add ASP.NET Identity support to your existing Web Forms project or a new empty project. Verranno descritti tutti i pacchetti NuGet che necessari per installare e le classi che è necessario aggiungere.I will outline all the NuGet packages you need to install, and classes you need to add. Esaminerà esempio Web Form per la registrazione di nuovi utenti e la registrazione in durante l'evidenziazione di tutte le API di punto di ingresso principale per l'autenticazione e gestione degli utenti.I will go over sample Web Forms for registering new users and logging in while highlighting all main entry point APIs for user management and authentication. In questo esempio userà l'implementazione predefinita di ASP.NET Identity per l'archiviazione dei dati SQL che si basa su Entity Framework.This sample will use the ASP.NET Identity default implementation for SQL data storage which is built on Entity Framework. Questa esercitazione si userà LocalDB per il database SQL.This tutorial, we will use LocalDB for the SQL database.

Introduzione a ASP.NET IdentityGet started with ASP.NET Identity

  1. Per iniziare, installare ed eseguire Visual Studio 2017.Start by installing and running Visual Studio 2017.

  2. Selezionare nuovo progetto dall'inizio pagina oppure è possibile usare il menu e selezionare Filee quindi nuovo progetto.Select New Project from the Start page, or you can use the menu and select File, and then New Project.

  3. Nel riquadro sinistro, espandere Visual C# , quindi selezionare Web, quindi applicazione Web ASP.NET (.Net Framework).In the left pane, expand Visual C#, then select Web, then ASP.NET Web Application (.Net Framework). Denominare il progetto "WebFormsIdentity" e selezionare OK.Name your project "WebFormsIdentity" and select OK.

  4. Nel nuovo progetto ASP.NET finestra di dialogo, seleziona la vuota modello.In the New ASP.NET Project dialog, select the Empty template.

    Si noti che il Modifica autenticazione pulsante è disabilitato e non viene fornito alcun supporto per l'autenticazione in questo modello.Notice the Change Authentication button is disabled and no authentication support is provided in this template. I modelli Web Form, MVC e API Web consentono di selezionare l'approccio di autenticazione.The Web Forms, MVC and Web API templates allow you to select the authentication approach.

Aggiungere i pacchetti di identità all'appAdd Identity packages to your app

In Esplora soluzioni fare clic sul progetto e selezionare Gestisci pacchetti NuGet.In Solution Explorer, right-click your project and select Manage NuGet Packages. Cercare e installare il EntityFramework pacchetto.Search for and install the Microsoft.AspNet.Identity.EntityFramework package.

Si noti che questo pacchetto installerà i pacchetti di dipendenza: EntityFramework e Microsoft ASP.NET Identity Core.Note that this package will install the dependency packages: EntityFramework and Microsoft ASP.NET Identity Core.

Aggiungere un web form per registrare gli utentiAdd a web form to register users

  1. Nelle Esplora soluzioni, fare clic sul progetto e selezionare Adde quindi modulo Web.In Solution Explorer, right-click your project and select Add, and then Web Form.

  2. Nel Specifica nome per l'elemento della finestra di dialogo Nome nuovo web form registrare, quindi selezionare OKIn the Specify Name for Item dialog box, name the new web form Register, and then select OK

  3. Sostituire il markup generato Register file con il codice seguente.Replace the markup in the generated Register.aspx file with the code below. Le modifiche al codice sono evidenziate.The code changes are highlighted.

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="WebFormsIdentity.Register" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body style="font-family: Arial, Helvetica, sans-serif; font-size: small">
        <form id="form1" runat="server">
        <div>
            <h4 style="font-size: medium">Register a new user</h4>
            <hr />
            <p>
                <asp:Literal runat="server" ID="StatusMessage" />
            </p>                
            <div style="margin-bottom:10px">
                <asp:Label runat="server" AssociatedControlID="UserName">User name</asp:Label>
                <div>
                    <asp:TextBox runat="server" ID="UserName" />                
                </div>
            </div>
            <div style="margin-bottom:10px">
                <asp:Label runat="server" AssociatedControlID="Password">Password</asp:Label>
                <div>
                    <asp:TextBox runat="server" ID="Password" TextMode="Password" />                
                </div>
            </div>
            <div style="margin-bottom:10px">
                <asp:Label runat="server" AssociatedControlID="ConfirmPassword">Confirm password</asp:Label>
                <div>
                    <asp:TextBox runat="server" ID="ConfirmPassword" TextMode="Password" />                
                </div>
            </div>
            <div>
                <div>
                    <asp:Button runat="server" OnClick="CreateUser_Click" Text="Register" />
                </div>
            </div>
        </div>
        </form>
    </body>
    </html>
    

    Note

    Questo è solo una versione semplificata del Register file che viene creato quando si crea un nuovo progetto di Web Form ASP.NET.This is just a simplified version of the Register.aspx file that is created when you create a new ASP.NET Web Forms project. Il markup precedente aggiunge i campi del modulo e un pulsante per registrare un nuovo utente.The markup above adds form fields and a button to register a new user.

  4. Aprire il Register.aspx.cs file e sostituire il contenuto del file con il codice seguente:Open the Register.aspx.cs file and replace the contents of the file with the following code:

    using Microsoft.AspNet.Identity;
    using Microsoft.AspNet.Identity.EntityFramework;
    using System;
    using System.Linq;
    
    namespace WebFormsIdentity
    {
       public partial class Register : System.Web.UI.Page
       {
          protected void CreateUser_Click(object sender, EventArgs e)
          {
             // Default UserStore constructor uses the default connection string named: DefaultConnection
             var userStore = new UserStore<IdentityUser>();
             var manager = new UserManager<IdentityUser>(userStore);
    
             var user = new IdentityUser() { UserName = UserName.Text };
             IdentityResult result = manager.Create(user, Password.Text);
    
             if (result.Succeeded)
             {
                StatusMessage.Text = string.Format("User {0} was created successfully!", user.UserName);
             }
             else
             {
                StatusMessage.Text = result.Errors.FirstOrDefault();
             }
          }
       }
    }
    

    Note

    1. Il codice precedente è una versione semplificata del Register.aspx.cs file che viene creato quando si crea un nuovo progetto di Web Form ASP.NET.The code above is a simplified version of the Register.aspx.cs file that is created when you create a new ASP.NET Web Forms project.
    2. Il IdentityUser classe è l'implementazione di Entity Framework predefinito delle IUser interfaccia.The IdentityUser class is the default EntityFramework implementation of the IUser interface. IUser è l'interfaccia minima per un utente in ASP.NET Identity Core.IUser interface is the minimal interface for a user on ASP.NET Identity Core.
    3. Il nello UserStore classe è l'implementazione di Entity Framework predefinito di un archivio utente.The UserStore class is the default EntityFramework implementation of a user store. Questa classe implementa interfacce minime di ASP.NET Identity Core: IUserStore, IUserLoginStore, IUserClaimStore e IUserRoleStore.This class implements the ASP.NET Identity Core's minimal interfaces: IUserStore, IUserLoginStore, IUserClaimStore and IUserRoleStore.
    4. Il UserManager API che salvano automaticamente le modifiche a correlate all'utente di classe espone le nello UserStore.The UserManager class exposes user related APIs which will automatically save changes to the UserStore.
    5. Il IdentityResult classe rappresenta il risultato di un'operazione di identità.The IdentityResult class represents the result of an identity operation.
  5. Nelle Esplora soluzioni, fare clic sul progetto e selezionare Add, Aggiungi cartella ASP.NET e quindi App_dati.In Solution Explorer, right-click your project and select Add, Add ASP.NET Folder and then App_Data.

  6. Aprire il Web. config file e aggiungere una voce della stringa di connessione per il database verrà usato per archiviare informazioni utente.Open the Web.config file and add a connection string entry for the database we will use to store user information. Il database verrà creato in fase di esecuzione da Entity Framework per le entità di identità.The database will be created at runtime by EntityFramework for the Identity entities. La stringa di connessione è simile a quello creato automaticamente quando si crea un nuovo progetto di Web Form.The connection string is similar to one created for you when you create a new Web Forms project. Il codice evidenziato di seguito viene illustrato il markup che è consigliabile aggiungere:The highlighted code shows the markup you should add:

    <?xml version="1.0" encoding="utf-8"?>
    <!--
      For more information on how to configure your ASP.NET application, please visit
      http://go.microsoft.com/fwlink/?LinkId=169433
      -->
    <configuration>
      <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </configSections>
       <connectionStrings>
          <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\WebFormsIdentity.mdf;Initial Catalog=WebFormsIdentity;Integrated Security=True"
                providerName="System.Data.SqlClient" />
       </connectionStrings>
      <system.web>
        <compilation debug="true" targetFramework="4.5" />
        <httpRuntime targetFramework="4.5" />
      </system.web>
      <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="v11.0" />
          </parameters>
        </defaultConnectionFactory>
        <providers>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
        </providers>
      </entityFramework>
    </configuration>
    

    Note

    Per Visual Studio 2015 o versione successiva, sostituire (localdb)\v11.0 con (localdb)\MSSQLLocalDB nella stringa di connessione.For Visual Studio 2015 or higher, replace (localdb)\v11.0 with (localdb)\MSSQLLocalDB in your connection string.

  7. Pulsante destro del mouse fare clic sul file Register nel progetto e selezionare imposta come pagina iniziale.Right click file Register.aspx in your project and select Set as Start Page. Premere CTRL+F5 per compilare ed eseguire l'applicazione web.Press Ctrl + F5 to build and run the web application. Immettere un nuovo nome utente e una password e quindi selezionare registrare.Enter a new user name and password and then select Register.

    Note

    ASP.NET Identity include il supporto per la convalida e in questo esempio è possibile verificare il comportamento predefinito sull'utente e Password validator che provengono dal pacchetto di base di identità.ASP.NET Identity has support for validation and in this sample you can verify the default behavior on User and Password validators that come from the Identity Core package. La convalida predefinita per l'utente (UserValidator) ha una proprietà AllowOnlyAlphanumericUserNames con valore predefinito impostato su true.The default validator for User (UserValidator) has a property AllowOnlyAlphanumericUserNames that has default value set to true. La convalida predefinita per la Password (MinimumLengthValidator) garantisce che la password è composta da almeno 6 caratteri.The default validator for Password (MinimumLengthValidator) ensures that password has at least 6 characters. Queste convalide sono di proprietà in UserManager che può essere sottoposto a override se si desidera avere la convalida personalizzata,These validators are properties on UserManager that can be overridden if you want to have custom validation,

Verificare il database di LocalDb identità e le tabelle generate da Entity FrameworkVerify the LocalDb Identity database and tables generated by Entity Framework

  1. Nel View dal menu Esplora Server.In the View menu, select Server Explorer.

  2. Espandere DefaultConnection (WebFormsIdentity), espandere tabelle, fare doppio clic su AspNetUsers e quindi selezionare Mostra dati tabella.Expand DefaultConnection (WebFormsIdentity), expand Tables, right-click AspNetUsers and then select Show Table Data.


Configurare l'applicazione per l'autenticazione OWINConfigure the application for OWIN authentication

A questo punto è stata aggiunta solo il supporto per la creazione di utenti.At this point we have only added support for creating users. A questo punto, si intende dimostrare come è possibile aggiungere l'autenticazione per accedere a un utente.Now, we are going to demonstrate how we can add authentication to login a user. ASP.NET Identity Usa il middleware di autenticazione OWIN di Microsoft per l'autenticazione basata su form.ASP.NET Identity uses Microsoft OWIN Authentication middleware for forms authentication. L'autenticazione dei Cookie OWIN un cookie e dichiara come meccanismo di autenticazione basata su che può essere usato da un framework ospitato in OWIN o IIS.The OWIN Cookie Authentication is a cookie and claims based authentication mechanism that can be used by any framework hosted on OWIN or IIS. Con questo modello, è possono utilizzare gli stessi pacchetti di autenticazione tra più Framework, tra cui MVC ASP.NET e Web Form.With this model, the same authentication packages can be used across multiple frameworks including ASP.NET MVC and Web Forms. Per ulteriori informazioni su come eseguire middleware in un host indipendente vedere e progetto Katana Introduzione al Katana Project.For more information on project Katana and how to run middleware in a host agnostic see Getting Started with the Katana Project.

Installare i pacchetti di autenticazione all'applicazioneInstall authentication packages to your application

  1. In Esplora soluzioni fare clic sul progetto e selezionare Gestisci pacchetti NuGet.In Solution Explorer, right-click your project and select Manage NuGet Packages. Cercare e installare il Microsoft.AspNet.Identity.Owin pacchetto.Search for and install the Microsoft.AspNet.Identity.Owin package.

  2. Cercare e installare il systemweb pacchetto.Search for and install the Microsoft.Owin.Host.SystemWeb package.

    Note

    Il Microsoft.Aspnet.Identity.Owin pacchetto contiene un set di classi dell'estensione per OWIN per gestire e configurare il middleware di autenticazione OWIN devono essere utilizzate dai pacchetti di ASP.NET Identity Core.The Microsoft.Aspnet.Identity.Owin package contains a set of OWIN extension classes to manage and configure OWIN authentication middleware to be consumed by ASP.NET Identity Core packages. Il systemweb pacchetto contiene un server OWIN che consente alle applicazioni basate su OWIN per l'esecuzione in IIS utilizzando la pipeline delle richieste ASP.NET.The Microsoft.Owin.Host.SystemWeb package contains an OWIN server that enables OWIN-based applications to run on IIS using the ASP.NET request pipeline. Per altre informazioni, vedere Middleware OWIN in IIS integrati pipeline.For more information see OWIN Middleware in the IIS integrated pipeline.

Aggiungere classi di configurazione di avvio e l'autenticazione OWINAdd OWIN startup and authentication configuration classes

  1. Nelle Esplora soluzioni, fare clic sul progetto, selezionare Adde quindi Aggiungi nuovo elemento.In Solution Explorer, right-click your project, select Add, and then Add New Item. Nella finestra casella di testo di ricerca, digitare "owin".In the search text box dialog, type "owin". Denominare la classe "avvio" e selezionare Add.Name the class "Startup" and select Add.

  2. Nel file Startup.cs, aggiungere il codice evidenziato seguente per configurare l'autenticazione tramite cookie OWIN.In the Startup.cs file, add the highlighted code shown below to configure OWIN cookie authentication.

    using Microsoft.AspNet.Identity;
    using Microsoft.Owin;
    using Microsoft.Owin.Security.Cookies;
    using Owin;
    
    [assembly: OwinStartup(typeof(WebFormsIdentity.Startup))]
    
    namespace WebFormsIdentity
    {
       public class Startup
       {
          public void Configuration(IAppBuilder app)
          {
             // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
             app.UseCookieAuthentication(new CookieAuthenticationOptions
             {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath = new PathString("/Login")
             });
          }
       }
    }
    

    Note

    Questa classe contiene il OwinStartup attributo per specificare la classe di avvio OWIN.This class contains the OwinStartup attribute for specifying the OWIN startup class. Ogni applicazione OWIN dispone di una classe di avvio in cui è specificare i componenti della pipeline dell'applicazione.Every OWIN application has a startup class where you specify components for the application pipeline. Visualizzare rilevamento della classe di avvio OWIN per altre informazioni su questo modello.See OWIN Startup Class Detection for more info on this model.

Aggiungi web form per la registrazione e accesso degli utentiAdd web forms for registering and signing in users

  1. Aprire il Register.aspx.cs file e aggiungere il codice seguente che consente l'accesso all'utente quando la registrazione ha esito positivo.Open the Register.aspx.cs file and add the following code which signs in the user when registration succeeds.

    using Microsoft.AspNet.Identity;
    using Microsoft.AspNet.Identity.EntityFramework;
    using Microsoft.Owin.Security;
    using System;
    using System.Linq;
    using System.Web;
    
    namespace WebFormsIdentity
    {
       public partial class Register : System.Web.UI.Page
       {
          protected void CreateUser_Click(object sender, EventArgs e)
          {
             // Default UserStore constructor uses the default connection string named: DefaultConnection
             var userStore = new UserStore<IdentityUser>();
             var manager = new UserManager<IdentityUser>(userStore);
             var user = new IdentityUser() { UserName = UserName.Text };
    
             IdentityResult result = manager.Create(user, Password.Text);
    
             if (result.Succeeded)
             {
                var authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
                var userIdentity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
                authenticationManager.SignIn(new AuthenticationProperties() { }, userIdentity);
                Response.Redirect("~/Login.aspx");
             }
             else
             {
                StatusMessage.Text = result.Errors.FirstOrDefault();
             }
          }
       }
    }
    

    Note

    • Poiché ASP.NET Identity e l'autenticazione tramite Cookie OWIN sono basata sulle attestazioni di sistema, il framework richiede lo sviluppatore dell'app generare una ClaimsIdentity per l'utente.Since ASP.NET Identity and OWIN Cookie Authentication are claims based system, the framework requires the app developer to generate a ClaimsIdentity for the user. Oggetto ClaimsIdentity offre informazioni su tutte le attestazioni dell'utente, ad esempio i ruoli a cui appartiene l'utente.ClaimsIdentity has information about all the claims for the user such as what Roles the user belongs to. È anche possibile aggiungere altre attestazioni dell'utente in questa fase.You can also add more claims for the user at this stage.
    • È possibile accedere all'utente tramite il AuthenticationManager da OWIN e chiamando il metodo SignIn e passando l'oggetto ClaimsIdentity come illustrato in precedenza.You can sign in the user by using the AuthenticationManager from OWIN and calling SignIn and passing in the ClaimsIdentity as shown above. Questo codice verrà accesso dell'utente e genera anche un cookie.This code will sign in the user and generate a cookie as well. Questa chiamata è analoga a FormAuthentication.SetAuthCookie utilizzato per il FormsAuthentication modulo.This call is analogous to FormAuthentication.SetAuthCookie used by the FormsAuthentication module.
  2. Nelle Esplora soluzioni, fare clic sul progetto, selezionare Adde quindi modulo Web.In Solution Explorer, right-click your project, select Add, and then Web Form. Denominare il web form account di accesso.Name the web form Login.

  3. Sostituire il contenuto del aspx file con il codice seguente:Replace the contents of the Login.aspx file with the following code:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="WebFormsIdentity.Login" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
       <title></title>
    </head>
    <body style="font-family: Arial, Helvetica, sans-serif; font-size: small">
       <form id="form1" runat="server">
          <div>
             <h4 style="font-size: medium">Log In</h4>
             <hr />
             <asp:PlaceHolder runat="server" ID="LoginStatus" Visible="false">
                <p>
                   <asp:Literal runat="server" ID="StatusText" />
                </p>
             </asp:PlaceHolder>
             <asp:PlaceHolder runat="server" ID="LoginForm" Visible="false">
                <div style="margin-bottom: 10px">
                   <asp:Label runat="server" AssociatedControlID="UserName">User name</asp:Label>
                   <div>
                      <asp:TextBox runat="server" ID="UserName" />
                   </div>
                </div>
                <div style="margin-bottom: 10px">
                   <asp:Label runat="server" AssociatedControlID="Password">Password</asp:Label>
                   <div>
                      <asp:TextBox runat="server" ID="Password" TextMode="Password" />
                   </div>
                </div>
                <div style="margin-bottom: 10px">
                   <div>
                      <asp:Button runat="server" OnClick="SignIn" Text="Log in" />
                   </div>
                </div>
             </asp:PlaceHolder>
             <asp:PlaceHolder runat="server" ID="LogoutButton" Visible="false">
                <div>
                   <div>
                      <asp:Button runat="server" OnClick="SignOut" Text="Log out" />
                   </div>
                </div>
             </asp:PlaceHolder>
          </div>
       </form>
    </body>
    </html>
    
  4. Sostituire il contenuto del Login.aspx.cs file con il codice seguente:Replace the contents of the Login.aspx.cs file with the following:

    using Microsoft.AspNet.Identity;
    using Microsoft.AspNet.Identity.EntityFramework;
    using Microsoft.Owin.Security;
    using System;
    using System.Web;
    using System.Web.UI.WebControls;
    
    namespace WebFormsIdentity
    {
       public partial class Login : System.Web.UI.Page
       {
          protected void Page_Load(object sender, EventArgs e)
          {
             if (!IsPostBack)
             {
                if (User.Identity.IsAuthenticated)
                {
                   StatusText.Text = string.Format("Hello {0}!!", User.Identity.GetUserName());
                   LoginStatus.Visible = true;
                   LogoutButton.Visible = true;
                }
                else
                {
                   LoginForm.Visible = true;
                }
             }
          }
    
          protected void SignIn(object sender, EventArgs e)
          {
             var userStore = new UserStore<IdentityUser>();
             var userManager = new UserManager<IdentityUser>(userStore);
             var user = userManager.Find(UserName.Text, Password.Text);
    
             if (user != null)
             {
                var authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
                var userIdentity = userManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
    
                authenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = false }, userIdentity);
                Response.Redirect("~/Login.aspx");
             }
             else
             {
                StatusText.Text = "Invalid username or password.";
                LoginStatus.Visible = true;
             }
          }
    
          protected void SignOut(object sender, EventArgs e)
          {
             var authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
             authenticationManager.SignOut();
             Response.Redirect("~/Login.aspx");
          }
       }
    }
    

    Note

    • Il Page_Load controlla lo stato dell'utente corrente e intraprende le azioni in base a questo punto relativo Context.User.Identity.IsAuthenticated dello stato.The Page_Load now checks for the status of current user and takes action based on its Context.User.Identity.IsAuthenticated status. Nel nome utente registrato visualizzato : Il Framework di identità Microsoft ASP.NET ha aggiunto i metodi di estensione nella IIdentity che consente di ottenere il UserName e UserId per l'utente connesso.Display Logged in User Name : The Microsoft ASP.NET Identity Framework has added extension methods on System.Security.Principal.IIdentity that allows you to get the UserName and UserId for the logged in User. Questi metodi di estensione sono definiti nel Microsoft.AspNet.Identity.Core assembly.These extension methods are defined in the Microsoft.AspNet.Identity.Core assembly. Questi metodi di estensione sono la sostituzione di HttpContext.User.Identity.Name .These extension methods are the replacement for HttpContext.User.Identity.Name .
    • Metodo SignIn: This metodo sostituisce il precedente CreateUser_Click metodo in questo esempio e l'ora consente l'accesso all'utente dopo la corretta creazione l'utente.SignIn method: This method replaces the previous CreateUser_Click method in this sample and now signs in the user after successfully creating the user.
      Il Framework di OWIN di Microsoft ha aggiunto i metodi di estensione nella System.Web.HttpContext che consente di ottenere un riferimento a un IOwinContext.The Microsoft OWIN Framework has added extension methods on System.Web.HttpContext that allows you to get a reference to an IOwinContext. Questi metodi di estensione sono definiti Microsoft.Owin.Host.SystemWeb assembly.These extension methods are defined in Microsoft.Owin.Host.SystemWeb assembly. Il OwinContext classe espone un IAuthenticationManager proprietà che rappresenta la funzionalità middleware di autenticazione disponibile sulla richiesta corrente.The OwinContext class exposes an IAuthenticationManager property that represents the Authentication middleware functionality available on the current request. Può accedere l'utente usando il AuthenticationManager da OWIN e chiamando SignIn e passando il ClaimsIdentity come illustrato in precedenza.You can sign in the user by using the AuthenticationManager from OWIN and calling SignIn and passing in the ClaimsIdentity as shown above. Poiché ASP.NET Identity e l'autenticazione tramite Cookie OWIN sono basate sulle attestazioni di sistema, il framework richiede l'app genererà un ClaimsIdentity per l'utente.Because ASP.NET Identity and OWIN Cookie Authentication are claims-based system, the framework requires the app to generate a ClaimsIdentity for the user. Il ClaimsIdentity dispone di informazioni su tutte le attestazioni dell'utente, ad esempio i ruoli a cui appartiene l'utente.The ClaimsIdentity has information about all the claims for the user, such as what roles the user belongs to. È anche possibile aggiungere altre attestazioni dell'utente in questa fase, questo codice verrà accesso dell'utente e genera anche un cookie.You can also add more claims for the user at this stage This code will sign in the user and generate a cookie as well. Questa chiamata è analoga a FormAuthentication.SetAuthCookie utilizzato per il FormsAuthentication modulo.This call is analogous to FormAuthentication.SetAuthCookie used by the FormsAuthentication module.
    • SignOut metodo: Ottiene un riferimento per la AuthenticationManager da OWIN e chiamate SignOut.SignOut method: Gets a reference to the AuthenticationManager from OWIN and calls SignOut. Questo comportamento è analogo a FormsAuthentication. SignOut metodo utilizzato per il FormsAuthentication modulo.This is analogous to FormsAuthentication.SignOut method used by the FormsAuthentication module.
  5. Premere Ctrl + F5 per compilare ed eseguire l'applicazione web.Press Ctrl + F5 to build and run the web application. Immettere un nuovo nome utente e una password e quindi selezionare registrare.Enter a new user name and password and then select Register.


    Nota: A questo punto, il nuovo utente viene creato e registrato nel.Note: At this point, the new user is created and logged in.

  6. Selezionare il disconnettersi pulsante.Select the Log out button. Si verrà reindirizzati al registro nel modulo.You are redirected to the Log in form.

  7. Immettere un nome utente non valido o la password e selezionare il Accedi pulsante.Enter an invalid user name or password and select the Log in button. Il UserManager.Find metodo restituirà null e il messaggio di errore: " Nome utente non valido o password "verranno visualizzati.The UserManager.Find method will return null and the error message: " Invalid user name or password " will be displayed.