Custom ClaimsPrincipal atau ClaimsIdentity (di mana mencangkokkannya?)

Di mana saya dapat memperluas fungsionalitas Identitas ASP.NET saat ini (5.0) untuk dengan mudah menyelesaikan ID pengguna bilangan bulat dan hak keamanan yang terkait dengan klaim? Ini harus tersedia di semua titik akses layanan browser aplikasi web saya (di mana pun cookie atau JWT disediakan), termasuk hub SignalR, pengontrol MVC, dan pengontrol WebAPI. Ini harus bekerja dengan Otentikasi OWIN.

Maaf jika saya sudah melewatkan jawaban di sini. Saya tahu ada banyak postingan mengenai hal ini, tetapi saat ini saya tidak melihat satu pun yang menjawab pertanyaan tersebut. Berikut adalah tiga solusi paling terkait yang pernah saya lihat, dan mengapa solusi tersebut tidak berhasil:

Tetapkan HttpContext.Current.User di setiap panggilan melalui global.asax Application_PostAuthenticateRequest. Saya telah melihat fungsionalitas lama (MVC 4) yang menggantikan ini. Saya tahu global.asax secara umum bukanlah pilihan yang tepat saat ini. Saya juga menggunakan OWIN; ini bahkan mungkin tidak berhasil sama sekali.

Ganti ClaimsPrincipal ClaimsAuthenticationManager.Authenticate() dengan konfigurasi <system.identityModel><identityConfiguration><claimsAuthenticationManager type = "CustomClaimsAuthenticatonManager" /> Namun, ClaimsAuthenticationManager berasal dari System.Identity, yang bahkan tidak ada dalam referensi proyek ASP.NET 5.0 saya dengan ClaimsAuthentication aktif. Sebaliknya saya memiliki referensi ke Microsoft.AspNet.Identity.Core hal dalam proyek saya dari paket NuGet saat ini. Tampaknya pendekatan ini bukan untuk aplikasi ASP.NET, atau setidaknya bukan untuk aplikasi saat ini?

Setel UserManager.ClaimsIdentityFactory ke ClaimsIdentityFactory khusus, dengan CreateAsync yang diganti. Sepertinya ini mungkin berhasil, tetapi saya tidak melihat cara apa pun untuk memasukkannya ke perilaku default ASP.NET saat ini. Lihat di sini: Bagaimana cara mengatur ClaimsPrincipal khusus di MVC 5?


person shannon    schedule 23.11.2015    source sumber
comment
Apakah Anda ingin menggunakan tabel Anda sendiri atau tabel Identity yang dibuat secara otomatis?   -  person Win    schedule 23.11.2015
comment
Saya lebih suka menggunakan tabel saya sendiri. Saat ini saya tidak menggunakan keduanya, secara teknis, karena baik proses otentikasi maupun otorisasi klaim tidak menyentuh Identity UserStore. Informasi akun tentu saja disimpan di database saya.   -  person shannon    schedule 23.11.2015
comment
Saya mencoba mendapatkan nama Grup tempat SID grup tersebut berada. Saya menggunakan otentikasi windows untuk menarik pengguna. Bagaimana cara mengonversi GroupSID menjadi nama grup tempat pengguna berada?   -  person Michael JDI    schedule 22.01.2016
comment
Adakah pembaruan untuk yang ini? Saya sedang melakukan penyesuaian untuk layanan, tetapi saya kesulitan melihat di mana Pengguna khusus dapat diakses di pengontrol. Idealnya saya ingin sesuatu seperti IUserContext diedarkan dari pengontrol. Saya dapat menambahkan klaim yang dapat diakses dari satu IUserContext yang dapat disuntikkan ke pengontrol.   -  person Andez    schedule 09.12.2016