0

誰かが私がこれについてのアイデアを得るのを手伝ってくれますか?Webサイトディレクトリ内のドキュメントにアクセスするための認証を行うC#Webサイトアプリケーションがあります。

ブラウザでtest.pdfを開く前に、ユーザーが私のWebサイトhttp://www.mywebapp.com/documents/test.pdfのリンクからpdfと言うドキュメントを要求した場合、実際にユーザーが許可されていることを確認したいと思います。彼が取得した役割に基づいてPDFにアクセスします。IISでフォルダ「ドキュメント」のフォーム認証を有効にしましたが、ユーザーが認証されていない場合、システムはログインページにリダイレクトします。私はそれですべて良いですが、承認に固執しています。

ユーザーごとに異なるため、web.configでロールを設定できません。ユーザーの役割は、その特定のユーザーのhttpcookieに保存されます。

また、マイドキュメントフォルダには、さまざまな役割を対象としたさまざまなドキュメントがあります。

ベンダーと呼ばれる役割についてtest.pdfと言います。したがって、ベンダーのみがこのpdfにアクセスできます

ロールサプライヤ用の別のドキュメントform.pdf-ロールサプライヤを持つユーザーのみがこのpdfを見ることができます。

ブラウザにPDFをロードする前に実行するハンドラーを作成する必要がありますか?または、リクエストが/ document /として届くたびに、承認を確認するためにaspxページを実行し、承認されている場合はページを表示するようにURLを書き換える必要がありますか?

誰かがこの承認を実装する方法についてのアイデアを得るのを手伝ってくれませんか。

あなたの助けに感謝!

ありがとう、KK

4

2 に答える 2

1

あなたの質問は、「自分のページで Cookie の値を確認し、Cookie が正常な場合に正しいドキュメント タイプのファイルのストリームを返す方法」のようです。

  • すべてのリクエストを処理していることを確認してください (WinForms よりも MVC を使用する方がはるかに簡単ですが、後で可能です)
  • Cookie の読み取りと検証
  • チェックに合格した場合はファイルを返します。「content-diposition」ヘッダーと「content-type」ヘッダーを設定することを忘れないでください。ここでも、MVC のファイル結果の方が使いやすいです...偽装を使用する場合は、正しいアカウントでファイルの内容を読み取るようにしてください。
于 2012-07-20T00:40:39.750 に答える
0

次のコードを web.config に追加して試すことができます

<location path="documents/test.pdf ">
        <system.web>
                <authorization>
                        <allow roles="Vendors"/>
                        <deny users="*"/>
                </authorization>
        </system.web>
</location>

<location path="documents/form.pdf ">
        <system.web>
                <authorization>
                        <allow roles="Role Supplier"/>
                        <deny users="*"/>
                </authorization>
        </system.web>
</location>
于 2012-07-20T04:19:18.763 に答える