2013-04-16 8 views
8

멤버십 및 역할에 Microsoft ASP.NET Universal Providers (NuGet)를 사용하는 ASP.NET WebForms 응용 프로그램이 있습니다. 모든 신뢰가 제대로 작동하지만 web.config를 편집하여 중간 신뢰를 지정하면 멤버십에 액세스하는 페이지를로드 할 때이 오류가 발생합니다.System.Web.Providers가 중간 트러스트로 작동하지 않습니다.

'System.Web.Providers.DefaultMembershipProvider'를 인스턴스화 할 수 없습니다. 부분적으로 신뢰할 수있는 보안 정책 (AllowPartiallyTrustedCallersAttribute가 대상 어셈블리에 없습니다)

웹을 검색했지만 알려진 제한인지 또는 해결 방법이 있는지에 대한 많은 정보를 찾지 못했습니다. 저는 MS 웹 갤러리에서 배포되고 중간 신뢰 환경을 지원해야하는 오픈 소스 앱 갤러리 서버 프로에서 일하고 있습니다.

어떤 통찰력이라도 있습니까?

[편집]의 요청에 따라, 여기 (I 프로파일 또는 세션 상태 제공자를 사용하지 않는)의 Web.config 물건 : 나는 때문에 쿠키 역할을 잡는 것 같아요

<membership defaultProvider="DefaultMembershipProvider"> 
    <providers> 
    <clear /> 
    <add name="DefaultMembershipProvider" applicationName="Gallery Server Pro" connectionStringName="GalleryDb" passwordFormat="Clear" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="50" minRequiredPasswordLength="2" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
    </providers> 
</membership> 
<roleManager enabled="true" cacheRolesInCookie="true" cookieProtection="Validation" defaultProvider="DefaultRoleProvider"> 
    <providers> 
    <clear /> 
    <add name="DefaultRoleProvider" applicationName="Gallery Server Pro" connectionStringName="GalleryDb" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
    </providers> 
</roleManager> 
+0

당신은이 과정 http://msdn.microsoft.com/en-us/library/wyts434y%28v=vs.100%29.aspx 통과 했습니까? ("부분 신뢰 가시 어셈블리 구성"이 흥미 롭습니다.) – jbl

+0

web.config에 partialTrustVisibleAssemblies를 추가하고 동일한 오류가 발생했습니다. 또한 좋은 측정을 위해 fullTrustAssemblies를 시도했지만 행운은 없습니다. 그러나이 트릭은 AllowPartiallyTrustedCallersAttribute로 표시된 어셈블리에서 작동하도록 설계 되었기 때문에 예상됩니다. System.Web.Providers는 분명히 그렇지 않습니다. – Roger

+1

web.config의 Membership | RoleManager | Profile | Sessionstate 태그를 게시 할 수 있습니까? – Win

답변

1

가 매체 보안 쿠키을 차단로서,

<roleManager enabled="true" cacheRolesInCookie="true" cookieProtection="Validation" ...

은 .. 그 작동 여부를 확인 후

을 그 부분을 제거하거나 허위하고 쿠키가 안전한 것으로 간주되지 않기 때문에 더 많은 것들을 얻을 수 있습니다. scavengers (왼쪽/임시 파일에서 데이터 해킹)에 대한 기본 자료. 나는이 할 것입니다 희망

는 ..

+0

불행히도, 그건 도움이되지 못했습니다. 쿠키 설정에서 몇 가지 변형을 시도했지만 항상 같은 오류가있었습니다. 나는 다른 공급자를 사용했지만 동일한 역할 관리자 설정을 사용하는 나의 마지막 버전에 유의해야하며 DID는 보통 신뢰로 작동합니다. – Roger