Dapatkan ProviderException berikut :
Fitur Manajer Peran belum diaktifkan.
Sejauh ini baik.
Apakah ada metode yang dapat dipanggil untuk memeriksa apakah Manajer Peran telah diaktifkan atau tidak?
c#
asp.net
roleprovider
gsharp
sumber
sumber
web.config
? Saya mencoba memasukkannya ke dalamApplication_Start
dan dikatakanThis method can only be called during the application's pre-start initialization phase.
roleManager
diaktifkan. Tapi sekarang saya mendapat pengecualianUnable to connect to SQL Server database
Jika Anda sampai di sini karena Anda menggunakan yang baru
ASP.NET
Identity
UserManager
, yang sebenarnya Anda cari adalahRoleManager
:roleManager
akan memberi Anda akses untuk melihat apakah peran itu ada, buat, dll, plus peran itu dibuat untukUserManager
sumber
Saya menemukan 2 saran di tempat lain melalui Google yang menyarankan a) memastikan db connectionstring Anda (salah satu yang menggunakan Peran) sudah benar dan bahwa kunci untuk itu dieja dengan benar, dan b) bahwa bendera Diaktifkan pada RoleManager disetel ke true. Semoga salah satu dari itu membantu. Itu untuk saya.
Apakah Anda mencoba memeriksa Peran. Diaktifkan? Juga, Anda dapat memeriksa Peran. Penyedia untuk melihat berapa banyak penyedia yang tersedia dan Anda dapat memeriksa Peran. Penyedia untuk penyedia default. Jika nol maka tidak ada.
sumber
Saya menemukan pertanyaan ini karena pengecualian yang disebutkan di dalamnya. Web.Config saya tidak memiliki
<roleManager>
tag. Saya menyadari bahwa meskipun saya menambahkannya (seperti yang disarankan Infotekka ), itu berakhir dengan pengecualian Database. Setelah mengikuti saran di jawaban lain di sini, tidak ada yang sepenuhnya menyelesaikan masalah.Karena tag Web.Config ini dapat dibuat secara otomatis, rasanya salah untuk menyelesaikannya dengan menambahkannya secara manual. Jika Anda berada dalam kasus yang sama, batalkan semua perubahan yang Anda buat ke Web.Config dan di Visual Studio:
Periksa Web.config Anda dan sekarang Anda harus memiliki setidaknya satu
<providers>
tag di dalam Profil , Keanggotaan , tag SessionState dan juga di dalam tag RoleManager baru , seperti ini:Tambahkan
enabled="true"
seperti ini:Tekan F6untuk Bangun dan sekarang tidak masalah untuk melanjutkan ke pembaruan basis data tanpa pengecualian:
update-database -verbose
dan metode Seed akan berjalan dengan baik (jika Anda belum mengacaukannya di tempat lain) dan membuat beberapa tabel di Database Anda;sumber
Jika Anda menggunakan,
ASP.NET Identity UserManager
Anda bisa mendapatkannya seperti ini juga:Jika Anda telah mengubah kunci untuk pengguna dari Guid ke Int misalnya, gunakan kode ini:
sumber
sumber
Berikut adalah kode yang harus Anda masukkan ke dalam Pengontrol Akun Anda di MVC5 dan kemudian untuk mendapatkan daftar peran pengguna:
csharp public async Task<ActionResult> RoleAdd(string UserID) { return View(await UserManager.GetRolesAsync(UserID)).OrderBy(s => s).ToList()); }
Tidak perlu menggunakan
Roles.GetRolesForUser()
dan mengaktifkan Fitur Peran Manajer.sumber