3

最近、 \some_server\c$\directory\file.xlsからリモート ファイルを解析するプログラムを作成しましたが、ローカル マシンでは通常の aspx ページとして正常に動作します。

次に、プログラムを VM SharePoint サーバーの Web パーツ フォームに配置すると、次のエラーが表示されます。パス '\some_server\c$\directory\file.xls' へのアクセスが拒否されました。

ファイルはDomain\Authenticated Usersに共有されているため、拒否される理由がわかりません。私の SharePoint がローカルまたはネットワーク サービス アカウントでそれを呼び出そうとしている可能性はありますか? どうすれば読めるようになりますか?ありがとうございました。

4

7 に答える 7

3

サラマンダーの言う通り、SharePoint はこれを実行する信頼性を備えていません。

web.config で SharePoint の信頼レベルを WSS_Medium から Full に変更するのが簡単な解決策ですが、セキュリティに影響があります。

于 2008-10-15T11:06:47.777 に答える
3

簡単なメモとして、従来の NTLM ダブルホップの問題が発生している可能性があります。フロント エンドに対して認証を行うことはできますが、フロント エンドにはパスワードがないため、別のサーバー上のリソースに対して認証を行うことができません。

昇格された特権で実行し、アプリケーション プール ID に基づいてアクセス許可を設定することは、前進する 1 つの方法になる可能性があります。

于 2008-10-23T20:00:50.033 に答える
2

SharePoint にアプリケーション プール アカウントを使用させる RunWithElevatedPrivleges が必要になると思います。また、アプリケーション プール アカウントがそのネットワーク共有にアクセスできることを確認する必要があることに注意してください。完全信頼の使用は避けてください。

于 2008-10-16T20:12:58.297 に答える
1

信頼レベルを設定することで何ができるのか、さらに説明していただけますか?

アプリ プール ID がドメイン アカウントである場合、 SPSecurity.RunWithElevatedPrivileges を使用してアプリ プール資格情報を使用してファイルにアクセスできると思います。または、偽装を使用して、別のアカウントの資格情報を明示的に渡します。

于 2008-10-15T12:39:44.110 に答える
0

アクセスしやすくするために、ファイルを SharePoint に保存してみませんか? 非表示のライブラリに配置し、SPSecurity.RunWithElevatedPrivledges を使用してアクセスします。

RWEP には注意事項があります。SPContext (つまり、SPContext.Current.Site) から取得された SPSite および SPWeb への参照は、ログオンしたユーザーの権限で引き続き実行されます。RWEP デリゲート内で参照を明示的に作成する必要があります。

SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(SPContext.Current.Site.Url)) { using (SPWeb web = site.OpenWeb()) { //... SPWeb で何かをする } } } );

共有ポイントの外部からファイルにアクセスして既存のプロセスで更新する必要がある場合は、すべての SPDocumentLibrary で使用できるファイル共有パスを使用できますが、[アクション] --> [Windows エクスプローラーで開く] に移動して、ネットワーク パスを取得します。

于 2008-10-17T20:57:22.233 に答える
0

通常、SharePoint は別のアプリケーション プールで実行されます。このアプリケーション プールの ID を確認してください。

于 2008-10-15T09:31:24.850 に答える
0

ネットワーク パスにアクセスできるようにするには、コードを FULL TRUST で実行する必要がありますが、これは SharePoint では実行できないと思います。

于 2008-10-15T10:55:56.503 に答える