2015-02-04 1 views
0

IIS (IIS 서버와 같은 도메인에있는 회사 컴퓨터의)에 이미 로그인 한 사용자에게 로그인 프롬프트를 표시하지 않는 인트라넷 웹 사이트를 만들고 싶습니다. 지금까지 모든 시도가 기본 로그인 프롬프트로 나타나거나 HttpContext.User.Identity.Name을 읽을 수 없습니다. User 개체는 해당 사용자가 도메인의 특정 Active Directory 그룹의 구성원인지 확인하는 데 사용됩니다.ASP.NET 웹 사이트가 로그인 프롬프트없이 Active Directory 그룹을 사용하여 권한을 부여하는 방법은 무엇입니까?

사용자가 브라우저 나 레지스트리 편집에 신뢰할 수있는 사이트를 추가해야하는 여러 가지 솔루션을 보았습니다. 그것은 제품 소유자가 원하는 것이 아닙니다. 완전히 자동화 된 환경을 만들 수 있습니까? 사용자는 어쨌든 컴퓨터에 로그인해야했을 것입니까?

MyAuthorizeAttribute

아래 코드는 내 집 컨트롤러의 색인 방법에 넣어 내 사용자 지정 AuthorizeAttribute 내부에 있습니다. User 객체가 있고 컨트롤러가 호출되면 작동하기 때문에 이것은 중요하지 않습니다. 그룹의 구성원 인 사용자는 시작 페이지로 이동하고 다른 사용자는 시작하지 않습니다.

  • 인증 : Windows 전용 (나는 익명으로 시도했지만 내가 할 수있는 활성화 '의 Web.config

    <authentication mode="Windows" />  
    <authorization> 
        <allow users="*" /> 
    </authorization> 
    

      PrincipalContext context = new PrincipalContext(ContextType.Domain, "<domain name>"); 
    
          UserPrincipal userPrincipal = UserPrincipal.FindByIdentity(context, httpContext.User.Identity.Name); 
    
          if (userPrincipal != null) 
          { 
           if (userPrincipal.IsMemberOf(context, IdentityType.SamAccountName, "<group name>")) 
           { 
            // The user belongs to the group 
            return true; 
           } 
          } 
          // The user is not a member of the group, handle the unauthorized request 
          return false; 
    

    사이트 IIS 모든 사용자 정보 검색)(210)

    • 편집 : 공급자 : NTLM은

는 응용 프로그램 풀 :

  • .NET 4.0.30319
  • 통합은
  • 는 아이덴티티 : 네트워크 서비스 (나는 시도했다 응용 프로그램 풀뿐 아니라 하나의 솔루션이 네트워크 서비스를 제안 함)
+0

슬프게도 나는이 일을하지 못했지만, 알아 내면 대답을 만들 것입니다. 우리는 아마도 로그인 프롬프트 버전으로 갈 것입니다. –

답변

1

Windows 인증의 컨텍스트에서 사용자의 역할은 AD 그룹 구성원 자격과 동일합니다. 결과적으로 표준 AuthorizeAttribute을 사용하고 사용자 정의 된 것을 완전히 제거 할 수 있습니다.

[Authorize(Roles = "<domain>\<group>")] 

이 당신이 가지고있는 실제 문제가 무엇인지 당신에게 여기에서 작동하는 것만으로는 충분하지,하지만 제거 사용자 정의 물건 당신은 실패에 항상 경향이있는, 추가 변수를 줄이는 좋은 첫 번째 단계입니다 .

+0

로그인 프롬프트 문제로 도움이되지는 않지만 팁을 주셔서 감사합니다! 내가 어쨌든 사용자 지정 속성을 만들어야한다고 생각합니다. 내 방식대로 무단 요청을 처리해야합니다. 그러나 이것은 훨씬 더 쉽게 읽을 수 있습니다. –

관련 문제