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
- 통합은
- 는 아이덴티티 : 네트워크 서비스 (나는 시도했다 응용 프로그램 풀뿐 아니라 하나의 솔루션이 네트워크 서비스를 제안 함)
슬프게도 나는이 일을하지 못했지만, 알아 내면 대답을 만들 것입니다. 우리는 아마도 로그인 프롬프트 버전으로 갈 것입니다. –