문제

실제로 매우 간단한 질문 :

현재 IIS 익명 액세스 장애가 있는데 사용자는 Windows 로그인을 사용하여 자동으로 로그온합니다. 그러나 user.isinrole ( "역할 이름")을 호출하면 false를 반환합니다. i user.identity.name ()과 "역할 이름"을 두 번 확인하고 True를 반환해야합니다.

나는 현재 내 web.config에 이것을 가지고있다 :

업데이트
user.isinrole ( "역할 이름")에 전화를 걸었습니다.

그러나 나는 여전히인지 알고 싶다u003Cmembership> 입장이 전혀 필요합니까?

무엇을 변경해야합니까? (그리고u003Cmembership> 전혀 필요한 입장이 있습니까?)

  <authentication mode="Windows">
      <forms
      name=".ADAuthCookie"
      timeout="10" />
  </authentication>


<membership defaultProvider="ADMembershipProvider">
  <providers>
    <clear/>
      <add
         name="ADMembershipProvider"
         type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
         connectionStringName="ADConnectionString"
         connectionUsername="XXX\specialAdUser"
         connectionPassword="xx"
         />
  </providers>
</membership>

<roleManager enabled="true" defaultProvider="WindowsProvider">
  <providers>
    <clear />
      <add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
  </providers>
</roleManager>
도움이 되었습니까?

해결책

Windows 인증을 사용하는 경우 Isinrole은 도메인 (IE 도메인 groupName)으로 역할을 접두사하는 것을 기억하는 한 추가 구성없이 작동합니다.

또한 귀하는 자신의 역할 (PUN 의도) 및 예를 들어 SQL 역할 제공 업체와 같은 Windows Auth를 사용할 수 있습니다. 예를 들어 광고를 응용 프로그램에 맞춤형 역할로 흩어지는 것을 원하지 않습니다.

아니요, 공급자 구성이 전혀 필요하지 않습니다.

다른 팁

여기 멤버십 제공 업체가 도움이되지 않습니다. Activedivedirectorymembershipprovider는 형태 인증에 가장 적합한 것 같습니다.

BlogEngine.net이 있습니다 Active Directory 역할 제공 업체.

RoleManager 그룹 (기본 인증 모드 = 'Windows'설정)과 함께 필요한 유일한 것은 확실합니다.

상자 밖에서 Active Directory를 직접 사용할 역할 제공 업체가 없습니다. ASP.NET 멤버십 및 역할 시스템에서 역할 테이블을 사용할 수 있거나 권한 부여 관리자 (AZMAN)를 사용할 수 있습니다.

에 관한 기사가 있습니다 CodeProject 이는 전체 소스 코드와 함께 Active Directory에 대해 작동하는 역할 공급자의 구현을 보여줍니다. 아마도 도움이 될까요?

마크

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top