2011-12-24 2 views
0

Net 버전이 Net4가 아닌 경우 내 응용 프로그램이 아름답게 작동합니다. 새로운 Windows 7 기반 서버를 처음부터 새로 만들면 계속해서 완벽하게 작동합니다. 사용 권한을 구성하고 나가십시오.Csla4 및 Net4 - 클라이언트에서 ASPNET 사용 권한이 거부되었습니다.

그러나 고객에게는 Csla4 및 Net4로 이동할 때 응용 프로그램이 시작되지 않는 기존 서버가 있습니다. "권한있는"서버와 "레거시이지만 업그레이드 된"서버에서는 모든 사용 권한이 동일하게 보입니다. 그러나 클라이언트는 보안 오류를 가져옵니다

System.Security.SecurityException: Request failed. 
    at System.RuntimeMethodHandle.PerformSecurityCheck(Object obj, RuntimeMethodHandleInternal method, RuntimeType parent, UInt32 invocationFlags) 
    at System.RuntimeMethodHandle.PerformSecurityCheck(Object obj, IRuntimeMethodInfo method, RuntimeType parent, UInt32 invocationFlags) 
    at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
    at System.Reflection.ConstructorInfo.Invoke(Object[] parameters) 
    at System.Configuration.TypeUtil.InvokeCtorWithReflectionPermission(ConstructorInfo ctor) 
    at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.CreateSectionImpl(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader) 
    at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.CreateSectionWithRestrictedPermissions(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader) 
    at System.Configuration.RuntimeConfigurationRecord.CreateSection(Boolean inputIsTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader) 
    at System.Configuration.BaseConfigurationRecord.CallCreateSection(Boolean inputIsTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader, String filename, Int32 line) 
The action that failed was: 
Demand 
The type of the first permission that failed was: 
System.Security.PermissionSet 
The demand was for: 
<PermissionSet class="System.Security.PermissionSet" 
version="1" 
Unrestricted="true"/> 

The only permitted permissions were: 
<PermissionSet class="System.Security.NamedPermissionSet" 
version="1" 
Name="Internet" 
Description="Default rights given to Internet applications"> 
<IPermission class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
version="1" 
Access="Open"/> 
<IPermission class="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
version="1" 
Allowed="ApplicationIsolationByUser" 
UserQuota="1024000"/> 
<IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
version="1" 
Flags="Execution"/> 
<IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
version="1" 
Window="SafeTopLevelWindows" 
Clipboard="OwnClipboard"/> 
<IPermission class="System.Drawing.Printing.PrintingPermission, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
version="1" 
Level="SafePrinting"/> 
<IPermission class="System.Security.Permissions.MediaPermission, WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
version="1" 
Audio="SafeAudio" 
Video="SafeVideo" 
Image="SafeImage"/> 
<IPermission class="System.Security.Permissions.WebBrowserPermission, WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
version="1" 
Level="Safe"/> 
</PermissionSet> 

The method that caused the failure was: 
System.Object CreateSectionWithRestrictedPermissions(System.Configuration.RuntimeConfigurationRecord, System.Configuration.FactoryRecord, System.Configuration.SectionRecord, System.Object, System.Configuration.ConfigXmlReader) 

내가 NET4에서 ASPNET 보안에 대한 변경 사항을 공부하고, thorougly 혼란 스러워요입니다.

다른 누구도이 문제를 발견하고 올바른 방향으로 나를 가리킬 수 있습니까? 반복하기 위해 응용 프로그램은 처음부터 새로 작성한 원격 환경에서는 완벽하게 작동하지만 업데이트 된 기존 서버에서는 작동하지 않습니다.

답변

0

나는 서버가 web.config 정도에서 "중간 신뢰"로 구성되어 있다고 생각합니다. 내가 아는 한 CSLA는 비즈니스 개체를 복제하기 위해 "완전 신뢰"가 필요합니다.

그 유에서 윈도우 registory에서 클라이언트의 신뢰할 수있는 영역에 서버를 추가 할 수있는 문제가 아닌 경우

[HKEY_CURRENT_USER \ 소프트웨어 \ 마이크로 소프트 \ 윈도우 \ CurrentVersion \ 인터넷 설정 \ ZoneMap]

자세한 내용을 보려면 http://blogs.technet.com/b/heyscriptingguy/archive/2005/05/02/how-can-i-add-a-site-to-internet-explorer-s-restricted-sites-zone.aspx

으로 이동하십시오.