Apa yang terjadi dengan proyek MVC saya (layanan tersambung Visual Studio Azure Active Directory)?
Berlaku untuk:
Visual Studio
Visual Studio untuk Mac
Visual Studio Code
Artikel ini mengidentifikasi perubahan pasti yang dilakukan pada proyek ASP.NET MVC saat menambahkan layanan yang tersambung Azure Active Directory yang menggunakan Visual Studio.
Untuk informasi tentang bekerja dengan layanan tersambung, lihat Memulai.
Menambahkan referensi
Mempengaruhi file proyek (referensi .NET) dan packages.config (referensi NuGet).
| Jenis | Referensi |
|---|---|
| .NET; NuGet | Microsoft.IdentityModel.Protocol.Extensions |
| .NET; NuGet | Microsoft.Owin |
| .NET; NuGet | Microsoft.Owin.Host.SystemWeb |
| .NET; NuGet | Microsoft.Owin.Security |
| .NET; NuGet | Microsoft.Owin.Security.Cookies |
| .NET; NuGet | Microsoft.Owin.Security.OpenIdConnect |
| .NET; NuGet | Owin |
| .NET | System.IdentityModel |
| .NET; NuGet | System.IdentityModel.Tokens.Jwt |
| .NET | System.Runtime.Serialization |
Referensi tambahan jika Anda memilih opsi Baca data direktori:
| Jenis | Referensi |
|---|---|
| .NET; NuGet | EntityFramework |
| .NET | EntityFramework.SqlServer (hanya Visual Studio 2015) |
| .NET; NuGet | Microsoft.Azure.ActiveDirectory.GraphClient |
| .NET; NuGet | Microsoft.Data.Edm |
| .NET; NuGet | Microsoft.Data.OData |
| .NET; NuGet | Microsoft.Data.Services.Client |
| .NET; NuGet | Microsoft.IdentityModel.Clients.ActiveDirectory |
| .NET | Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms (khusus Visual Studio 2015) |
| .NET; NuGet | System.Spatial |
Referensi berikut dihapus (hanya proyek ASP.NET 4, seperti di Visual Studio 2015):
| Jenis | Referensi |
|---|---|
| .NET; NuGet | Microsoft.AspNet.Identity.Core |
| .NET; NuGet | Microsoft.AspNet.Identity.EntityFramework |
| .NET; NuGet | Microsoft.AspNet.Identity.Owin |
Perubahan file proyek
- Atur properti
IISExpressSSLPortke angka berbeda. - Atur properti
WebProject_DirectoryAccessLevelKeyke 0, atau 1 jika Anda memilih opsi Baca data direktori. - Atur properti
IISUrlkehttps://localhost:<port>/dengan<port>yang cocok dengan nilaiIISExpressSSLPort.
Perubahan web.config or app.config
Menambahkan entri konfigurasi berikut:
<appSettings> <add key="ida:ClientId" value="<ClientId from the new Azure AD app>" /> <add key="ida:AADInstance" value="https://login.microsoftonline.com/" /> <add key="ida:Domain" value="<your selected Azure domain>" /> <add key="ida:TenantId" value="<the Id of your selected Azure AD tenant>" /> <add key="ida:PostLogoutRedirectUri" value="<project start page, such as https://localhost:44335>" /> </appSettings>Menambahkan elemen
<dependentAssembly>di bawah simpul<runtime><assemblyBinding>untukSystem.IdentityModel.Tokens.JwtdanMicrosoft.IdentityModel.Protocol.Extensions.
Perubahan tambahan jika Anda memilih opsi Baca data direktori:
Menambahkan entri konfigurasi berikut ini di bawah
<appSettings>:<add key="ida:ClientSecret" value="<Azure AD app's new client secret>" />Menambahkan elemen berikut di bawah
<configuration>; nilai untuk project-mdf-file dan project-catalog-id akan bervariasi:<configSections> <!-- For more information on Entity Framework configuration, visit https://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)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\<project-mdf-file>.mdf;Initial Catalog=<project-catalog-id>;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="mssqllocaldb" /> </parameters> </defaultConnectionFactory> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework>Menambahkan elemen
<dependentAssembly>di bawah simpul<runtime><assemblyBinding>untukMicrosoft.Data.Services.Client,Microsoft.Data.Edm, danMicrosoft.Data.OData.
Perubahan dan penambahan kode
Menambahkan atribut
[Authorize]keControllers/HomeController.csdan pengontrol lain yang ada.Menambahkan kelas permulaan autentikasi,
App_Start/Startup.Auth.cs, yang berisi logika permulaan untuk autentikasi Azure AD. Jika Anda memilih opsi Baca data direktori, file ini juga berisi kode untuk menerima kode OAuth dan menukarnya dengan token akses.Menambahkan kelas pengontrol,
Controllers/AccountController.cs, yang berisi metodeSignIndanSignOut.Menambahkan tampilan parsial,
Views/Shared/_LoginPartial.cshtml, yang berisi link tindakan untukSignIndanSignOut.Menambahkan tampilan parsial,
Views/Account/SignoutCallback.cshtml, yang berisi HTML untuk UI keluar.Memperbarui
Startup.Configurationmetode untuk menyertakan panggilan keConfigureAuth(app)jika kelas sudah ada; jika tidak, menambahkan kelasStartupyang menyertakan metode panggilan.Menambahkan
Connected Services/AzureAD/ConnectedService.json(Visual Studio 2017) atauService References/Azure AD/ConnectedService.json(Visual Studio 2015), yang berisi informasi yang digunakan Visual Studio untuk melacak penambahan layanan yang tersambung.Jika Anda memilih opsi Baca data direktori, menambahkan
Models/ADALTokenCache.csdanModels/ApplicationDbContext.csuntuk mendukung cache token. Juga menambahkan pengontrol dan tampilan tambahan untuk mengilustrasikan pengaksesan informasi profil pengguna menggunakan API grafik Azure:Controllers/UserProfileController.cs,Views/UserProfile/Index.cshtml, danViews/UserProfile/Relogin.cshtml
Pencadangan file (Visual Studio 2015)
Saat menambahkan layanan tersambung, Visual Studio 2015 mencadangkan file yang diubah dan dihapus. Semua file yang terpengaruh disimpan di folder Backup/AzureAD. Visual Studio 2017 dan yang lebih baru tidak membuat cadangan.
Startup.csApp_Start\IdentityConfig.csApp_Start\Startup.Auth.csControllers\AccountController.csControllers\ManageController.csModels\IdentityModels.csModels\ManageViewModels.csViews\Shared\_LoginPartial.cshtml
Perubahan pada Azure
- Membuat Azure AD Application di domain yang Anda pilih saat menambahkan layanan tersambung.
- Memperbarui aplikasi untuk menyertakan izin Baca data direktori jika opsi tersebut dipilih.
Pelajari lebih lanjut tentang Azure Active Directory.