역할 관리자 기능이 활성화되지 않았습니다.
역할 관리자 기능이 활성화되지 않았습니다.
아직까지는 좋아.
Role Manager가 활성화되었는지 확인하기 위해 호출할 수 있는 방법이 있습니까?
다음 위치에 있는 부울 속성에서 읽으면 이 작업을 수행할 수 있습니다.
System.Web.Security.Roles.Enabled
이것은, 에서 직접 읽어낸 것입니다.enabled
의 속성roleManager
의 요소web.config
:
<configuration>
<system.web>
<roleManager enabled="true" />
</system.web>
</configuration>
업데이트:
상세한 것에 대하여는, 다음의 MSDN 샘플을 참조해 주세요.https://msdn.microsoft.com/en-us/library/aa354509(v=vs.110).aspx
만약 당신이 여기 온 이유가 새로운 것을 사용했기 때문이라면ASP.NET
Identity
UserManager
실제로 찾고 있는 것은,RoleManager
:
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
roleManager
역할이 존재하는지, 작성하는지 등을 확인하기 위해 액세스 할 수 있습니다.또한 이 역할은UserManager
구글을 통해 2가지 제안을 찾았습니다.a) db connectionstring(Roles가 사용하고 있는 것)이 올바르고 키의 철자가 올바른지, b) RoleManager의 Enabled 플래그가 true로 설정되어 있는지 확인합니다.그 중 하나가 도움이 되길 바랍니다.나한텐 그랬다.
역할을 확인해보셨습니까?유효하게?또한 역할을 선택할 수도 있습니다.프로바이더가 사용 가능한 프로바이더의 수를 확인하고 역할을 확인할 수 있습니다.디폴트 프로바이더의 공급자.만약 그것이 무효라면 그것은 존재하지 않는다.
나는 이 질문에 언급된 예외로 인해 이 질문을 발견했다.내 웹구성에는 아무것도 없습니다.<roleManager>
태그를 추가해도 (Infotecka의 제안대로) Database 예외로 끝납니다.여기 있는 다른 답변의 제안사항을 따르면 아무도 문제를 완전히 해결하지 못했습니다.
이 웹에서 부터.구성 태그는 자동으로 생성될 수 있으므로 수동으로 추가하는 것으로 해결할 수 없습니다.유사한 경우 웹에서 변경한 모든 내용을 취소하십시오.구성 및 Visual Studio:
- +Q를 누르고 nuget을 입력하고 "Manage NuGet Packages"를 클릭합니다.
- +E 를 누르고 providers 라고 입력하면, 리스트에 「Microsoft ASP」라고 표시됩니다.NET Universal Providers Core Libraries" 및 "Microsoft ASP"를 참조하십시오.NET Universal Providers for LocalDB" (모두 Microsoft가 작성)
- 양쪽의 [Install]버튼을 클릭하여 [NuGet]창을 닫습니다
Web.config 를 체크하면, 적어도 1 개 이상의 Web.config 를 사용할 수 있습니다.
<providers>
다음과 같이 프로파일, 멤버십, SessionState 태그 내부 및 새로운 RoleManager 태그 내부에 태그를 지정합니다.<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">
빌드하려면 를 누릅니다.이제 데이터베이스 업데이트를 진행해도 됩니다.이 예외는 없습니다.
- +Q를 누르고 manager를 입력하고 "Package Manager Console"을 클릭합니다.
- 「」라고 입력합니다.
update-database -verbose
시드 메서드는 정상적으로 실행되며(다른 곳에서 조작하지 않은 경우), 데이터베이스에 몇 개의 테이블을 만듭니다. - ++WL를 눌러 Server Explorer를 열면 새로 생성된 테이블 중 [Data Connections]> [ Default Connection ]> [ Tables the Roles and Users InRoles ]테이블을 체크 인 할 수 있습니다.
「 」를 사용하고 ASP.NET Identity UserManager
을 사용하다
var userManager = Request.GetOwinContext().GetUserManager<ApplicationUserManager>();
var roles = userManager.GetRoles(User.Identity.GetUserId());
예를 들어 사용자 키를 GUID에서 Int로 변경한 경우 다음 코드를 사용합니다.
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>
다음은 MVC5 이후 계정 컨트롤러에 사용자 역할 목록을 가져오기 위해 입력해야 하는 코드입니다.
csharp public async Task<ActionResult> RoleAdd(string UserID) { return View(await UserManager.GetRolesAsync(UserID)).OrderBy(s => s).ToList()); }
.Roles.GetRolesForUser()
롤 매니저 기능을 유효하게 합니다.
언급URL : https://stackoverflow.com/questions/3874279/the-role-manager-feature-has-not-been-enabled
'programing' 카테고리의 다른 글
왜 String을 사용합니까?== 이상입니까? (0) | 2023.04.20 |
---|---|
'마이크로소프트'ACE.OLEDB.12.0' 공급자가 로컬 시스템에 등록되어 있지 않습니다. (0) | 2023.04.20 |
XAML의 #지역 (0) | 2023.04.20 |
BAT 파일을 항상 관리 모드로 실행하도록 코드화하려면 어떻게 해야 합니까? (0) | 2023.04.20 |
변수 끝에서 문자 제거 (0) | 2023.04.20 |