2013-04-16 26 views
8

Tôi có một ứng dụng ASP.NET WebForms sử dụng Microsoft ASP.NET Universal Providers (NuGet) cho các thành viên và vai trò. Dưới sự tin tưởng đầy đủ tất cả mọi thứ hoạt động tốt, nhưng khi tôi chỉnh sửa web.config để chỉ định tin cậy trung bình, tôi nhận được lỗi này khi tải trang truy cập thành viên:System.Web.Providers không hoạt động trong môi trường tin cậy

Loại 'System.Web.Providers.DefaultMembershipProvider' không thể được khởi tạo trong một chính sách bảo mật đáng tin cậy một phần (AllowPartiallyTrustedCallersAttribute không có mặt trên assembly đích).

Tôi đã tìm kiếm trên web và không tìm thấy nhiều thông tin về việc đây có phải là giới hạn đã biết hoặc nếu có giải pháp thay thế. Tôi đang làm việc trên ứng dụng nguồn mở Gallery Server Pro, được phân phối trong MS Web Gallery và phải hỗ trợ môi trường tin cậy trung bình.

Bất kỳ thông tin chi tiết nào?

[Chỉnh sửa] mỗi yêu cầu, đây là những thứ web.config (tôi không sử dụng hồ sơ hoặc các nhà cung cấp trạng thái phiên):

<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

Cậu đi qua quá trình này http://msdn.microsoft.com/en-us/library/wyts434y%28v=vs.100%29.aspx? ("Cấu hình một phần Tin cậy Visible Assemblies" có vẻ thú vị) – jbl

+0

Tôi đã thử thêm partialTrustVisibleAssemblies để web.config và có lỗi tương tự (cũng đã thử fullTrustAssemblies cho biện pháp tốt, nhưng không có may mắn). Điều này được mong đợi, tuy nhiên, bởi vì thủ thuật này được thiết kế để làm việc trên các assembly được đánh dấu với AllowPartiallyTrustedCallersAttribute, mà System.Web.Providers dường như là không. – Roger

+1

Bạn có thể đăng thành viên của bạn | RoleManager | Hồ sơ | Thẻ Sessionstate của web.config? – Win

Trả lời

1

tôi nghĩ rằng nó có thể là do bắt vai trò trong cookie ,

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

Hủy bỏ phần đó, hoặc làm cho nó sai và sau đó kiểm tra nếu làm việc của nó ..

Như an ninh trung bình sẽ chặn cookie một d nhiều thứ hơn, vì cookie không được coi là an toàn. Tài liệu cơ bản của nó cho những người nhặt rác (lấy cắp dữ liệu từ các tập tin trên/tạm thời).

Tôi hy vọng điều này sẽ làm ..

+0

Thật không may, điều đó không giúp được gì. Tôi đã thử một vài biến thể trên các thiết lập cookie nhưng nó luôn luôn là lỗi tương tự. Tôi nên lưu ý phiên bản cuối cùng của tôi, sử dụng một nhà cung cấp khác nhưng có cùng một cài đặt roleManager, DID hoạt động với độ tin cậy trung bình. – Roger

Các vấn đề liên quan