ASP.NET 멤버십 - user.isinrole ()를 사용하여 어떤 roleprovider를 사용할 수 있습니까?
-
21-08-2019 - |
문제
실제로 매우 간단한 질문 :
현재 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에 대해 작동하는 역할 공급자의 구현을 보여줍니다. 아마도 도움이 될까요?
마크