2016-12-30 8 views
0

ページについては、.net Webアプリケーションのページを表示する前に、セッションを使用してユーザーがログに記録されているかどうかを確認できます。ただし、URLがファイルへのリンクである場合、ユーザーがログインしていて、サーバーからファイルを直接ダウンロードするかどうかを確認することはできません。私は成功なしにGlobal.asax上のクッキーまたはセッションをチェックしようとしました。asp.net Webアプリケーション内のファイルへのアクセスを許可する前にクッキーまたはセッションを確認する

編集:私はサーバー上ではなくセッションを通じて認証を求めています。データベースにユーザーログインがあるので、web.configソリューションはここでは適用されません。

ユーザーはサーバー上のファイルや/ documentsなどの特定のディレクトリの下にあるURLにアクセスする前に、セッションまたはCookieをチェックできますか?

例:/test.aspxページにアクセスするために、セッションが存在するかどうかを確認し、存在しない場合はログインページにダイレクトすることができます。

/docs/file.pdfなどのファイルにアクセスする場合は、同じチェックを実行できません。

+0

「[asp.net?]のファイルとフォルダへの直接アクセスを禁止する方法(http://stackoverflow.com/questions/26968328/how-to-prevent-direct-access-to-files-and) -folders-in-asp-net) – Xiaoy312

+1

クッキーはクライアントコンピュータに保存され、プレーンテキストファイルであり、悪意のあるユーザーが非常に簡単に変更することができます。したがって、クッキーはセキュリティ上重要なデータを格納する安全な場所ではありません。アクセス制御のためにクッキーを使用しようとしないでください。 – Sparrow

答えて

0

最初の場所でURLのファイル名を取得する方法がわかりません。おそらくそれはあなたが変えなければならないことです。テーブルを追加してGUIDとファイル名をテーブルに保存できる場合、urlはGUIDをパラメータとして渡すことができます。 サーバー側では、GUIDを実際のファイルにマップし、ファイルを返す前にセッションを検証できます。

+0

ファイルは/docs/file.pdfと似ています。ユーザーはブラウザにURLを入力するだけで済みます。だからこそ私はURLにアクセスする前にまずログインするように指示する解決策を探しています。 GUIDソリューションを使用すると、残念ながら非常に複雑になります。 –

関連する問題