1

共有サーバーをホストしている.Net4サイトがあります。ログインしようとしてメンバーシッププロバイダーにアクセスするまでは正常に機能します。ログインしようとすると、次のエラーが発生します。

例外の詳細:System.Security.SecurityException:タイプ'System.Security.Permissions.FileIOPermission、mscorlib、Version = 4.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089'のアクセス許可の要求が失敗しました。

これは、おそらくweb.configの信頼レベル設定が原因であるというヒントを与えてくれます。

説明:アプリケーションがセキュリティポリシーで許可されていない操作を実行しようとしました。このアプリケーションに必要な権限を付与するには、システム管理者に連絡するか、構成ファイルでアプリケーションの信頼レベルを変更してください。

残念ながら、ホストが信頼レベルを無効にしたため、信頼レベルを変更できません。しかし、ファイルシステムに書き込む必要はないと思うので、FileIOPermissionアクセス権が本当に必要かどうかはわかりません。

私のMembershipProviderは、デフォルトのMembershipProviderをオーバーライドしたものであり、私が知っているファイルに書き込むことになる異常なことは何もありません。加えられた変更は、Usersテーブルにいくつかのパラメーターを追加することだけでした。

では、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にアクセスしていますか?FileIOPermissionExceptionをスローせずにアクセスする方法については、この回答を参照してください:https ://stackoverflow.com/a/2488591/69742

于 2012-07-12T18:19:41.797 に答える