Dalam model formulir, saya biasa mendapatkan pengguna login saat ini dengan:
Page.CurrentUser
Bagaimana cara mendapatkan pengguna saat ini di dalam kelas kontroler di ASP.NET MVC?
c#
.net
asp.net-mvc
iis
forms-authentication
Serhat Ozgel
sumber
sumber
Saya menemukan bahwa itu
User
berfungsi, yaitu,User.Identity.Name
atauUser.IsInRole("Administrator")
.sumber
Imports System.Web
dan lebih lanjut memenuhi syarat denganHttpContext.Current.User.Identity.Name
, atau langsung memenuhi syarat menggunakan sintaks lengkap:System.Web.HttpContext.Current.User.Identity.Name
Coba
HttpContext.Current.User
.sumber
Anda bisa mendapatkan nama pengguna di ASP.NET MVC4 seperti ini:
sumber
'System.Web.HttpContextBase' does not contain a definition for 'Current' and no extension method 'Current' accepting a first argument of type 'System.Web.HttpContextBase' could be found
, saya sarankan melakukan panggilan absolut seperti iniSystem.Web.HttpContext.Current.User.Identity.Name
,.Saya menyadari ini benar-benar tua, tapi saya baru memulai dengan ASP.NET MVC, jadi saya pikir saya akan memasukkan dua sen saya di:
Request.IsAuthenticated
memberi tahu Anda jika pengguna diautentikasi.Page.User.Identity
memberi Anda identitas pengguna yang masuk.sumber
Saya menggunakan:
Saya tidak yakin ini akan bekerja di ASP.NET MVC, tetapi patut dicoba :)
sumber
mendapatkan nama pengguna login:
System.Web.HttpContext.Current.User.Identity.Name
sumber
Untuk referensi ID pengguna yang dibuat menggunakan otentikasi sederhana yang dibangun ke dalam ASP.NET MVC 4 di controller untuk keperluan penyaringan (yang berguna jika Anda menggunakan database pertama dan Kerangka Entity 5 untuk menghasilkan binding pertama-kode dan tabel Anda terstruktur sehingga bahwa kunci asing ke ID pengguna digunakan), Anda dapat menggunakan
setelah Anda menambahkan pernyataan menggunakan
sumber
System.Security.Principal.WindowsIdentity.GetCurrent().Name
bekerja diMVC 5
. Namun itu menarik nama domain dengan nama pengguna. yaitu domain \ usernameKita dapat menggunakan kode berikut untuk mendapatkan Pengguna yang login saat ini di ASP.Net MVC:
Juga
sumber
UserName dengan:
Tetapi jika Anda hanya perlu mendapatkan ID, Anda dapat menggunakan:
Jadi, Anda bisa mendapatkan ID Pengguna secara langsung:
sumber
Halaman ini bisa menjadi apa yang Anda cari:
Menggunakan Page.User.Identity.Name di MVC3
Anda hanya perlu
User.Identity.Name
.sumber
Menggunakan
System.Security.Principal.WindowsIdentity.GetCurrent().Name
.Ini akan mendapatkan pengguna Windows login saat ini.
sumber
Untuk apa nilainya, dalam ASP.NET MVC 3 Anda bisa menggunakan Pengguna yang mengembalikan pengguna untuk permintaan saat ini.
sumber
Jika Anda berada di dalam halaman login Anda, dalam acara LoginUser_LoggedIn misalnya, Current.User.Identity.Name akan mengembalikan nilai kosong, jadi Anda harus menggunakan propertiLoginControlName.UserName Anda.
sumber
Anda dapat menggunakan kode berikut:
sumber
sumber
sumber
Jika Anda bekerja di Active Directory pada intranet, berikut adalah beberapa tips:
(Windows Server 2012)
Menjalankan apa pun yang berbicara dengan AD di server web membutuhkan banyak perubahan dan kesabaran. Karena ketika berjalan di server web vs IIS / IIS Express lokal itu berjalan di identitas AppPool, Anda harus mengaturnya untuk meniru siapa pun yang mengunjungi situs.
Cara mendapatkan pengguna login saat ini di direktori aktif ketika aplikasi ASP.NET MVC Anda berjalan di server web di dalam jaringan:
Anda harus menutup semua panggilan yang berkaitan dengan 'konteks direktori aktif' di bawah ini sehingga bertindak sebagai lingkungan hosting untuk mendapatkan informasi AD:
Anda juga harus
impersonate
mengeset true di web.config Anda:Anda harus mengaktifkan otentikasi Windows di web.config:
sumber
Di Asp.net Mvc Identity 2, Anda bisa mendapatkan nama pengguna saat ini dengan:
sumber
Di Manajer IIS, di bawah Otentikasi, nonaktifkan: 1) Otentikasi Anonim 2) Otentikasi Formulir
Kemudian tambahkan berikut ini ke controller Anda, untuk menangani pengujian versus penyebaran server:
sumber