1

我有一个托管共享服务器的 .Net 4 站点。它工作正常,直到我通过尝试登录访问会员提供程序,其中我收到以下错误:

异常详细信息:System.Security.SecurityException:请求“System.Security.Permissions.FileIOPermission,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。

它给了我提示,这可能是因为 web.config 中的信任级别设置:

说明:应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请联系您的系统管理员或在配置文件中更改应用程序的信任级别。

不幸的是,我无法更改信任级别,因为主机禁用了它。但我不确定我是否真的需要 FileIOPermission 访问权限,因为我认为我不需要写入文件系统。

我的 Membership Provider 是对默认 MembershipProvider 的覆盖,没有任何异常可以写入我知道的文件。所做的更改只是向用户表添加了一些参数。

那么有没有办法禁用对 FileIOPermission 的需求?

堆栈跟踪:

[SecurityException: Request for the permission of type
'System.Security.Permissions.FileIOPermission, mscorlib,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
failed.]
       System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
       System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission
cap, StackCrawlMark& stackMark) +31
       System.Security.CodeAccessPermission.Demand() +46
       System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share,
Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs,
String msgPath, Boolean bFromProxy, Boolean useLongPath) +597
       System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) +83
       System.Configuration.Internal.InternalConfigHost.StaticOpenStreamForRead(String
streamName) +79
       System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.OpenStreamForRead(String
streamName, Boolean assertPermissions) +124
       System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.OpenStreamForRead(String
streamName) +10
       System.Configuration.Internal.DelegatingConfigHost.OpenStreamForRead(String
streamName) +13
       System.Configuration.UpdateConfigHost.OpenStreamForRead(String
streamName) +38
       System.Configuration.BaseConfigurationRecord.InitConfigFromFile()
+450
4

1 回答 1

0

你是从你的代码中访问 Web.Config 吗?请参阅此答案:https ://stackoverflow.com/a/2488591/69742 ,了解如何在不抛出 FileIOPermissionException 的情况下访问它

于 2012-07-12T18:19:41.797 回答