নিম্নলিখিত সরবরাহকারীর ধারণা পেয়েছেন :
রোল ম্যানেজার বৈশিষ্ট্যটি সক্ষম করা হয়নি।
এ পর্যন্ত সব ঠিকই.
কোথাও কোথাও এমন কোনও পদ্ধতি রয়েছে যা রোল ম্যানেজার সক্ষম হয়েছে কিনা তা যাচাই করার জন্য ডাকা যেতে পারে?
নিম্নলিখিত সরবরাহকারীর ধারণা পেয়েছেন :
রোল ম্যানেজার বৈশিষ্ট্যটি সক্ষম করা হয়নি।
এ পর্যন্ত সব ঠিকই.
কোথাও কোথাও এমন কোনও পদ্ধতি রয়েছে যা রোল ম্যানেজার সক্ষম হয়েছে কিনা তা যাচাই করার জন্য ডাকা যেতে পারে?
উত্তর:
আপনি এখানে বুলিয়ান সম্পত্তি থেকে পড়ে এটি করতে পারেন:
System.Web.Security.Roles.Enabled
enabled
এটিতে roleManager
উপাদানটির বৈশিষ্ট্য থেকে সরাসরি পড়া web.config
:
<configuration>
<system.web>
<roleManager enabled="true" />
</system.web>
</configuration>
আপডেট:
আরও তথ্যের জন্য, এই এমএসডিএন নমুনাটি দেখুন: https ://msdn.mic Microsoft.com/en-us/library/aa354509(v=vs.110).aspx
roleManager
সক্ষম করা হয়েছে। তবে এখন আমি ব্যতিক্রম পাচ্ছিUnable to connect to SQL Server database
আপনি নতুনটি ব্যবহার করার কারণে আপনি যদি এখানে পৌঁছে থাকেন তবে আপনি ASP.NET
Identity
UserManager
যা খুঁজছেন তা হ'ল RoleManager
:
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
roleManager
ভূমিকাটি উপস্থিত রয়েছে কিনা তা দেখার অ্যাক্সেস দেবে, তৈরি করুন ইত্যাদি, এবং এটি এর জন্য তৈরি করা হয়েছে UserManager
গুগলের মাধ্যমে আমি অন্য কোথাও 2 টি পরামর্শ পেয়েছি যা ক) প্রস্তাবিত হয়েছিল যে) আপনার ডিবি সংযোগের (যেটি রোলস ব্যবহার করছেন) সঠিক এবং এর কীটি সঠিকভাবে বানান করা হয়েছে তা নিশ্চিত করে, এবং খ) যে রোলম্যানেজারে থাকা সক্ষম পতাকাটি সত্য হিসাবে সেট করা আছে making আশা করি এর মধ্যে একজন সাহায্য করবে। এটা আমার জন্য।
আপনি কী ভূমিকাটি পরীক্ষা করার চেষ্টা করেছিলেন? সক্ষম? এছাড়াও, আপনি কতজন সরবরাহকারী উপলব্ধ এবং তা আপনি ডিফল্ট সরবরাহকারীর জন্য Roles.Povider চেক করতে পারেন তা দেখতে Roles.Povators চেক করতে পারেন। যদি এটি নাল হয় তবে একটি নেই।
এতে উল্লেখ করা ব্যতিক্রমের কারণে আমি এই প্রশ্নটি পেয়েছি। আমার ওয়েব.কনফিগের কোনও <roleManager>
ট্যাগ ছিল না । আমি বুঝতে পেরেছি যে আমি এটি যুক্ত করলেও (যেমন ইনফোটেক্কা পরামর্শ দিয়েছিলেন ), এটি একটি ডাটাবেস ব্যতিক্রমেই শেষ হয়েছিল। এখানে অন্যান্য উত্তরের পরামর্শ অনুসরণ করার পরে, কেউই পুরোপুরি সমস্যার সমাধান করেনি।
যেহেতু এই ওয়েব.কনফিগ ট্যাগগুলি স্বয়ংক্রিয়ভাবে উত্পন্ন হতে পারে তাই ম্যানুয়ালি এগুলি যুক্ত করে এটিকে সমাধান করা ভুল বলে মনে হয়েছিল। আপনি যদি একইরকম ক্ষেত্রে থাকেন তবে আপনি ওয়েব.কনফিগ এবং ভিজ্যুয়াল স্টুডিওতে করা সমস্ত পরিবর্তন পূর্বাবস্থায় ফিরিয়ে আনুন:
আপনার ওয়েবকনফিগটি পরীক্ষা করুন এবং এখন আপনার প্রোফাইল , মেম্বারশিপ , সেশনস্টেট ট্যাগের ভিতরে এবং নতুন রোলম্যানেজার ট্যাগের মধ্যে কমপক্ষে একটি <providers>
ট্যাগ থাকা উচিত :
<roleManager defaultProvider="DefaultRoleProvider">
<providers>
<add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=NUMBER" connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</roleManager>
এর enabled="true"
মতো যুক্ত করুন :
<roleManager defaultProvider="DefaultRoleProvider" enabled="true">
F6বিল্ড করতে টিপুন এবং এখন ব্যতিক্রম ছাড়াই ডাটাবেস আপডেটে এগিয়ে যাওয়া ঠিক হবে:
update-database -verbose
এবং বীজ পদ্ধতিটি ঠিকঠাক চলবে (যদি আপনি অন্য কোথাও গোলমাল না করেন) এবং আপনার ডাটাবেসে কয়েকটি সারণী তৈরি করবেন;আপনি যদি ব্যবহার করেন তবে ASP.NET Identity UserManager
আপনি এটির মতো এটিও পেতে পারেন:
var userManager = Request.GetOwinContext().GetUserManager<ApplicationUserManager>();
var roles = userManager.GetRoles(User.Identity.GetUserId());
উদাহরণস্বরূপ আপনি যদি গাইড থেকে ইন্টে ব্যবহারকারীর জন্য কী পরিবর্তন করেছেন তবে এই কোডটি ব্যবহার করুন:
var roles = userManager.GetRoles(User.Identity.GetUserId<int>());
<roleManager
enabled="true"
cacheRolesInCookie="false"
cookieName=".ASPXROLES"
cookieTimeout="30"
cookiePath="/"
cookieRequireSSL="false"
cookieSlidingExpiration="true"
cookieProtection="All"
defaultProvider="AspNetSqlRoleProvider"
createPersistentCookie="false"
maxCachedResults="25">
<providers>
<clear />
<add
connectionStringName="MembershipConnection"
applicationName="Mvc3"
name="AspNetSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add
applicationName="Mvc3"
name="AspNetWindowsTokenRoleProvider"
type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
এমভিসি 5 এবং আপনার ব্যবহারকারীর ভূমিকার তালিকা পাওয়ার জন্য আপনার অ্যাকাউন্ট নিয়ন্ত্রকটিতে আপনাকে যে কোডটি রাখতে হবে তা এখানে রয়েছে:
csharp
public async Task<ActionResult> RoleAdd(string UserID)
{
return View(await
UserManager.GetRolesAsync(UserID)).OrderBy(s => s).ToList());
}
Roles.GetRolesForUser()
রোল ম্যানেজার বৈশিষ্ট্যটি ব্যবহার এবং সক্ষম করার দরকার নেই ।
web.config
? আমি এটি triedোকানোর চেষ্টা করেছিApplication_Start
এবং এটি বলেছেThis method can only be called during the application's pre-start initialization phase.