2013-04-06 1 views
0

나는 밤새이 일을 망쳤으며 정말 실망 스럽습니다. 마침내 표시 할 웹 페이지가 있지만 어떤 이유로 내 오류 페이지 및 상태를 다시 쏘고 의미가 작동하지 않습니다 "사용자 인증 할 수 못했습니다 다시 시도하십시오!". 나는 이것이 그림 스튜디오가 설치되어있는 나의 로컬 머신에서 완벽하게 작동하는 것을 알 수 없다.Windows 인증을 사용하는 Asp.net 웹 페이지 Active Directory

누군가가 시간을내어 도와 주시면 하루 종일 계속 싸우십시오. 감사합니다

Class.cs 당신이 그것을 구성된 계정에서 실행하기 때문에 응용 프로그램이 IIS에 배포 실패 할 이유

public bool IsUserInSetup(string groupName, UserPrincipal user) 
    { 
     PrincipalContext context = new PrincipalContext(ContextType.Domain, "DomainName"); 
     GroupPrincipal group = GroupPrincipal.FindByIdentity(context, "GroupName"); 

     if (user.IsMemberOf(group)) 
     { 
      return true; 
     } 
     return false; 
    } 

가능한 이유 일단 Authentication.aspx.cs

if (!IsPostBack) 
      { 
       if (Request.IsAuthenticated) 
       { 

        if (gv.IsUserInSetup("GroupName", user)) 
        { 
         Session["userValue"] = UserPrincipal.Current; 

         Response.Redirect("Default.aspx"); 

        } 
else 
       { 
        lblInfo.Text = "Could Not Authenticate User Please Try Again!"; 
        lblInfo.Text += "<br><b>Name: </b>" + User.Identity.Name; 
        lblInfo.Text += "<br><b>Authenticated With: </b>"; 
        lblInfo.Text += User.Identity.AuthenticationType; 
       } 

답변

0

다른 포럼에서 답변을 얻었으나 아무 이유없이 많은 추가 작업을 수행하고있었습니다. Asp.net에는 USER.ISINROLE ("GROUPNAME")이 있는데 그 이름을 사용했습니다.

1

입니다 Active Directory 서버에 액세스 할 충분한 권한이 없습니다. 기본적으로 IIS의 응용 프로그램 풀은 서버 계정의 로컬 인 기본 제공 ApplicationPoolIdentity 계정에서 실행됩니다. IIS의 응용 프로그램 풀 설정으로 이동하여 충분한 권한이있는 도메인 계정을 선택해야합니다.

이것은 Active Directory에 액세스 할 수있는 도메인 계정 일 가능성이있는 계정으로 응용 프로그램을 실행하고 있기 때문에 VS에서 로컬로 실행될 때 작동합니다.

+0

응답 해 주셔서 감사합니다. 응용 프로그램 풀을 만들고 Domain \ Admin 자격 증명을 사용했지만 여전히 동일한 이야기입니다. 나는 가장을 사용하지 않으면 다음 오류가 발생합니다. 'System.DirectoryServices.AccountManagement.GroupPrincipal'형식의 개체를 'System.DirectoryServices.AccountManagement.UserPrincipal'형식으로 캐스팅 할 수 없습니다. – Henry