역할을 반환하지 않는 레이아웃보기의 Roles.GetRolesForUser ()

SMUsamaShah

@Roles.GetRolesForUser()면도기 레이아웃보기에서 역할을 반환하지 않습니다. @Roles.GetRolesForUser().Count()0입니다.

같은 장소에서 같은 뷰로 @Roles.IsUserInRole('name_of_logged_in_role')돌아 오는 동안 true.

면도기보기 :

<p>
    @User.Identity.Name //Output: MyName
    @Roles.GetRolesForUser().Count()  //Output: 0
    @Roles.IsUserInRole("Radiologist")  //Output: True
</p>

최신 정보

@Roles.GetRolesForUser(User.Identity.Name).Length //Output: 0
@Roles.GetRolesForUser(User.Identity.GetUserName()).Length //Output: 0
imGreg

광범위한 조사 끝에 마침내 문제를 발견했습니다. 웹 애플리케이션에서 문제를 재현 할 수있었습니다. 분명히 ASP.NET IdentitySimple Membership결합 할 수는 없습니다 . 단순히 GetRolesForUser메서드 를 사용했을 때처럼 말입니다 . Roles객체에 대한 기본 설정입니다 간단한 회원 기본 공급자를 사용하지만, 그것은 당신의 사용처럼 보인다 ASP.NET 정체성 없는 간단한 회원 . 나는 왜 그것이 작동하지 않는지 스스로 궁금해 할 때까지 차이를 알아 차리지 못했습니다.

당신이 얻은 이유 string[0]GetRolesForUser데이터베이스에 존재하지 않는 테이블에 SQL 쿼리를 실행 했기 때문 입니다.
작동하는 이유 IsUserInRole는 다소간 기본 공급자를 사용하여 확인하지 않았기 때문입니다.CacheRolesInCookie

If CacheRolesInCookie is true, then roleName may be checked against the roles cache rather than the specified role provider.

따라서 기술적으로는 기본 공급자가 나열한 string[0]connectionString으로 이동하여 해당 connectionString을 사용하는 데이터베이스에 데이터가 없기 때문에 반환 됩니다. Simple Membership 데이터베이스 스키마가 ASP.NET Identity 와 다르기 때문에 현재 데이터베이스를 공급자에 추가해도 도움이되지 않습니다.

즉, 다음과 같이 UserName으로 역할을 가져와야합니다.

간단한 솔루션 :

public List<string> GetRoles(string UserName)
{    List<string> roles = new List<string>();
    if (!string.IsNullOrWhiteSpace(UserName))
    {
        ApplicationUser user = context.Users.Where(u => u.UserName.Equals(UserName, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();
        var account = new AccountController();

        roles = account.UserManager.GetRoles(user.Id);         
    }            
    return roles;
}

업데이트 됨

확장 솔루션 :

컨텍스트에서 ASP.NET ID 역할을 확장 할 수 있습니다.

http://www.codeproject.com/Articles/799571/ASP-NET-MVC-Extending-ASP-NET-Identity-Roles

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

역할을 반환하지 않는 레이아웃보기의 Roles.GetRolesForUser ()

분류에서Dev

SqlRoleProvider : Roles.GetRolesForUser를 호출 할 때 NullReferenceException 발생

분류에서Dev

역학 하위보기가있는 자동 레이아웃

분류에서Dev

알 수없는 수의 레이아웃 자식을 보유하는보기 만들기

분류에서Dev

어떻게 ConstraintLayout를 사용하여 레이아웃을 사용자 지정보기의 폭을 관리하는?

분류에서Dev

레이아웃을 변경하는 getView의 버튼이있는 Android 목록보기 어댑터

분류에서Dev

discord.py : member.roles에서 기본 역할을 정렬하는 방법은 무엇입니까?

분류에서Dev

Userctx는 쿠키 인증과 함께 사용자 이름 또는 역할을 반환하지 않습니다.

분류에서Dev

자동 레이아웃을 사용하는 xib가 하위보기로 추가 될 때 표시되지 않음

분류에서Dev

보기에 사용자 역할을 반환하는 MVC

분류에서Dev

프로그래밍 방식으로보기 레이아웃의 속성을 변경하는 방법

분류에서Dev

asp.net mvc의 레이아웃보기에 검색 창을 추가하는 방법은 무엇입니까?

분류에서Dev

레이아웃보기를 렌더링하는 동안 정의되지 않은 속성 'render'를 읽을 수 없습니다.

분류에서Dev

컨트롤의 레이아웃을 변경하는 레이아웃 변환

분류에서Dev

캔버스보기가 상대 레이아웃 (XAML)을 채우지 않음

분류에서Dev

일반보기는 값을 반환하지 않습니다.

분류에서Dev

여러 줄 텍스트보기,이 레이아웃을 구현하는 방법

분류에서Dev

Android에서 반응 형 레이아웃을 만드는 방법 모든 크기의 모바일 및 가로 세로보기에서도 잘 보이는 탭

분류에서Dev

2 개 이상의 키보드 레이아웃을 조정하는 방법

분류에서Dev

레이아웃, 이미지보기 또는 ...의 배경에 대한 라이브 배경 화면을 설정하는 방법이 가능합니까?

분류에서Dev

Zend는 레이아웃을 캡처하고 콘텐츠를 변수로보기

분류에서Dev

message.guild.roles.cache.get (roleID) .members는 일부 회원을 반환하고 때로는 전혀 반환하지 않습니다.

분류에서Dev

DialogFragment onCreateView가 사용자 지정 레이아웃보기를 반환하지 않습니까?

분류에서Dev

키보드 레이아웃 표시기가 Ubuntu 18.04에서 현재 레이아웃을 표시하지 않음 (빈 드롭 다운 상자)

분류에서Dev

다른 항목을보기 밖으로 밀어 내지 않고 레이아웃의 이미지 크기를 최대 너비로 조정

분류에서Dev

반환하기 전에 휘발성을 지역 변수에 할당하는 이유

분류에서Dev

한 줄에 가변 textview와 두 개의 버튼이있는 사용자 지정 목록보기 항목을 레이아웃하는 방법

분류에서Dev

사용자 정의보기 Java 클래스에서 레이아웃을 확장하는 방법은 무엇입니까? XML이 아님

분류에서Dev

다른 레이아웃에서 호출 할 때 사용자 정의보기 layout_gravity가 작동하지 않음

Related 관련 기사

  1. 1

    역할을 반환하지 않는 레이아웃보기의 Roles.GetRolesForUser ()

  2. 2

    SqlRoleProvider : Roles.GetRolesForUser를 호출 할 때 NullReferenceException 발생

  3. 3

    역학 하위보기가있는 자동 레이아웃

  4. 4

    알 수없는 수의 레이아웃 자식을 보유하는보기 만들기

  5. 5

    어떻게 ConstraintLayout를 사용하여 레이아웃을 사용자 지정보기의 폭을 관리하는?

  6. 6

    레이아웃을 변경하는 getView의 버튼이있는 Android 목록보기 어댑터

  7. 7

    discord.py : member.roles에서 기본 역할을 정렬하는 방법은 무엇입니까?

  8. 8

    Userctx는 쿠키 인증과 함께 사용자 이름 또는 역할을 반환하지 않습니다.

  9. 9

    자동 레이아웃을 사용하는 xib가 하위보기로 추가 될 때 표시되지 않음

  10. 10

    보기에 사용자 역할을 반환하는 MVC

  11. 11

    프로그래밍 방식으로보기 레이아웃의 속성을 변경하는 방법

  12. 12

    asp.net mvc의 레이아웃보기에 검색 창을 추가하는 방법은 무엇입니까?

  13. 13

    레이아웃보기를 렌더링하는 동안 정의되지 않은 속성 'render'를 읽을 수 없습니다.

  14. 14

    컨트롤의 레이아웃을 변경하는 레이아웃 변환

  15. 15

    캔버스보기가 상대 레이아웃 (XAML)을 채우지 않음

  16. 16

    일반보기는 값을 반환하지 않습니다.

  17. 17

    여러 줄 텍스트보기,이 레이아웃을 구현하는 방법

  18. 18

    Android에서 반응 형 레이아웃을 만드는 방법 모든 크기의 모바일 및 가로 세로보기에서도 잘 보이는 탭

  19. 19

    2 개 이상의 키보드 레이아웃을 조정하는 방법

  20. 20

    레이아웃, 이미지보기 또는 ...의 배경에 대한 라이브 배경 화면을 설정하는 방법이 가능합니까?

  21. 21

    Zend는 레이아웃을 캡처하고 콘텐츠를 변수로보기

  22. 22

    message.guild.roles.cache.get (roleID) .members는 일부 회원을 반환하고 때로는 전혀 반환하지 않습니다.

  23. 23

    DialogFragment onCreateView가 사용자 지정 레이아웃보기를 반환하지 않습니까?

  24. 24

    키보드 레이아웃 표시기가 Ubuntu 18.04에서 현재 레이아웃을 표시하지 않음 (빈 드롭 다운 상자)

  25. 25

    다른 항목을보기 밖으로 밀어 내지 않고 레이아웃의 이미지 크기를 최대 너비로 조정

  26. 26

    반환하기 전에 휘발성을 지역 변수에 할당하는 이유

  27. 27

    한 줄에 가변 textview와 두 개의 버튼이있는 사용자 지정 목록보기 항목을 레이아웃하는 방법

  28. 28

    사용자 정의보기 Java 클래스에서 레이아웃을 확장하는 방법은 무엇입니까? XML이 아님

  29. 29

    다른 레이아웃에서 호출 할 때 사용자 정의보기 layout_gravity가 작동하지 않음

뜨겁다태그

보관