ASP.NET MVC Hosting – JaringanHosting.com:: Keamanan dan authorization di ASP.NET MVC

Sekarang kita ingin meng’setup’ authentication dengan menggunakan login untuk membolehkan atau melarang pengguna untuk bagian-bagian tertentu pada suatu situs situs ASP.NET MVC Anda. Yang paling umum digunakan  adalah admin area di mana kita meletakkan halaman administratif yang hanya dapat diakses oleh pemilik situs. Mari kita buat area ini, dengan mengklik kanan project MVC dalam Visual Studio dan kemudian Add -> New Area …

image

Beri nama “Admin” seperti pada gambar di bawah ini:

image

Hasilnya adalah sebuah folder baru dengan isi, Admin Area, dengan subfolder Controller, Model dan Views dan kelas AdminAreaRegistration yang akan dipanggil secara otomatis selama inisialisasi. Routing juga secara otomatis mengatur.

Sekarang kita dapat membuat halaman yang dilindungi di Admin Area dimana kita dapat melakukan beberapa manajemen konten dasar, menggunakan kode dari posting kami pada Content Management dengan MarkDown. Controller-nya terlihat seperti ini:

namespace Auction.Web.Areas.Admin.Controllers

{

[RequireHttps(Order = 1)]

[Authorize(Roles = “Administrators”, Order = 2)]

public class ContentPagesController : BaseController

{

//

// GET: /Seller/ContentPage/

public ViewResult Index()

{

var items = Query(new GetAllContentPages());

return View(items);

}

Controller memiliki dua FilterAttributes pada level class:

[ RequireHttps ( Order = 1 ) ]

[ Authorize ( Roles = ” Administrator ” , Order = 2 ) ]

Atribut-atribut ini merupakan bagian dari kerangka kerja MVC standar.

banner-jarhost

Atribut RequireHttps memastikan bahwa semua Action pada Controller dapat diakses hanya dengan Https . Jika pengguna mencoba untuk mengakses method melalui Http, filter akan merespon dengan respon redirect ke Https . Filter hanya bekerja untuk port SSL standar ( 443 ). Jika Anda menggunakan port lain , Anda dapat membuat filter Anda sendiri yang diarahkan ke port SSL  Anda .

Filter Authorize adalah salah satu yang akan memeriksa apakah pengguna berwenang untuk mengakses method ini dengan memeriksa apakah pengguna adalah member dari role Administrator. Jika bukan , filter akan merespon dengan meredirect ke halaman login. Jika Anda ingin mengirim authenticated kepada pengguna yang belum dikonfirmasi ke halaman AccessDenied daripada mengirim mereka kembali ke Login , Anda akan memerlukan subclass AuthorizeAttribute dan menambahkan custom properti AccessDeniedPath.

Cara termudah untuk mengkonfigurasi ini adalah dengan meregistrasi peran dan keanggotaan pada web.config :

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="~/Account/Login" timeout="2880" />
  </authentication>
  <roleManager enabled="true" defaultProvider="simple">
    <providers>
      <clear/>
      <add name="simple" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
    </providers>
  </roleManager>
  <membership defaultProvider="simple">
    <providers>
      <clear/>
      <add name="simple" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/>
    </providers>
  </membership>
</system.web>

Dengan tempat ini, kita memiliki working authorization di dalam Admin Area kita. Hanya Administrator yang dapat mengakses fungsi Content Management.

Hal ini juga memungkinkan untuk menentukan authorization di web.config, tapi ini sulit untuk mempertahankan dan sangat mudah untuk kehilangan sesuatu di sana. Lebih baik untuk menentukan dengan atribut authorization pada controllers.

Untuk mengujinya, kita memerlukan bootstrap untuk keamanan kita dengan menambahkan peran Administrator dan menetapkan peran untuk user pertama. Karena SimpleMembership tidak datang dengan alat pemeliharaan untuk melakukan hal ini dalam web UI, saya membuat peran dalam migrasi FluentMigrator seperti ini:

// Omitted: Execute.Sql("SET IDENTITY_INSERT xxx ON");
  Insert.IntoTable("UserProfile")
        .Row(new { UserId = 1, UserName = "Admin" });
  Insert.IntoTable("webpages_Membership")
        .Row(new { UserId = 1, CreateDate = DateTime.Now, IsConfirmed = true, 
            Password = @"ALFKxBEo4nooWqxCbfhj14PIjduREv1aItKcNCgwTla2iXAYMLzVcUEFrDyz78wPtA==", 
            PasswordSalt = String.Empty, PasswordChangedDate = DateTime.Now });
  Insert.IntoTable("webpages_Roles")
        .Row(new { RoleId = 1, RoleName = "Administrators" });
  Insert.IntoTable("webpages_UsersInRoles")
        .Row(new { UserId = 1, RoleId = 1 });

Aku mengambil data dengan membuat account, membuka database dan menyalin data ke migrasi. Dengan cara ini, Anda akan selalu memiliki account Admin sebagai permulaan. Anda dapat dengan mudah membuat Web UI  untuk manajemen account sehingga Administrator dapat memberikan peran kepada pengguna lain, dan menggunakan peran ini untuk melindungi fungsi-fungsi lain di situs ASP.NET MVC Anda.

 

JaringanHosting.com adalah provider ASP.NET dan Windows hosting No #1 di Indonesia sesuai dengan rekomendasi dari pihak Microsoft. Microsoft memberikan rekomendasi ini berdasarkan pada beberapa persyaratan utama, yaitu: WebMatrix, WebDeploy, Visual Studio 2012,ASP.NET 4.5, ASP.NET MVC 4.0, Silverlight 5 and Visual Studio Lightswitch.Untuk keterangan lanjutan, silahkan klik disini!

Advertisements
Tagged with: , , , , ,
Posted in ASP.NET, ASP.NET Hosting, ASP.NET MVC

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

@jaringanhosting
ASP.NET ASP.NET hosting asp.net hosting bagus ASP.NET hosting murah ASP.NET MVC ASP.NET MVC untuk Website asp shopping cart murah backup database belanja online bisnis online murah cara mengaktifkan IIS cara meningkatkan visitor Cloud hosting Cloud Hosting Murah cloud server dedicated server dedicated server hosting dedicated server hosting murah develop sharepoint dotnetnuke dotnetnuke hosting berkualitas Dotnetnuke hosting murah drupal drupal hosting e-commerce murah e commerce website e commerce website design hosting bagus hosting berkualitas hosting muarh hosting murah IIS iklan gratis joomla joomla hosting murah menghasilkan uang lewat facebook menghasilkan uang lewat twitter meningkatkan pendapatan bisnis online microsoft microsoft microsoft visual studio online shop oscommerce berkualitas oscommerce hosting oscommerce hosting murah oscommerce murah sharepoint hosting sharepoint server software sql hosting murah technology tips Tips & Trick ASP.NET tips and trik menaikkan pengunjung website Tips ASP.NET tips berbelanja online tips crystal report tips memanfaatkan jejaring sosial untuk bisnis Tips Memilih Proviider Cloud Hosting tips menaikkan pengunjung Tips Menghasilkan Uang melalui Jejaring Sosial tips meningkatakn pendapatan toko online tips meningkatkan pendapatan e-commerce tips sharepoint toko online Trik Memilih Provider Cloud Hosting trik menaikan jumlah pengunjung website VPS Hosting windows Windows Cloud Hosting Murah Windows Cloud Server Murah windows hosting windows hosting murah windows server murah wordpress murah Wordpress tips
%d bloggers like this: