2009-03-16 9 views
1

私は、特定のビューを使用して内部レポートを生成する.Net MVCアプリケーションを構築しています。私は、サイトのユーザーがこのページにアクセスすることを望んでいません。サーバーだけがアクセスできるようにmvcビューを保護する

私はコンソールアプリケーションを頻繁に起動して、このページの詳細の一部をURLに打ち込んでしまいます。

私はそこにURLが掛かっているという考えが好きではありませんが、別の方法ではわかりません。

これに対処するためのベストプラクティスの方法が考えられますか?

編集:

ここでは、溶液中の新しいWCFサービスプロジェクトを作成し、私がやってしまったものです。私は基本的には MVCビューページだったものをこのプロジェクトの新しい標準Webフォームページにコピーしました。通常の.net認証方法(例えば、有効なウィンドウユーザーのみがページにアクセスできるように設定するなど)を介してセキュリティを追加することに加えて、特定のIPによってのみアクセスされるように仮想ホストをロックダウンすることもできます。

答えて

2

ベストプラクティスは、このためにwcfサービスを公開し、ウェブサイトとは異なるセキュリティモデルを設定することです。

あなたはMVCにMVCでの最善のアプローチを使用フォーム認証を使用して、ビューに

[Authorize(Roles = "SecureUser")] 

を設定する必要があります。

0

コンソールアプリケーションのデータを提供する以外にビューをレンダリングする必要がない場合は、コンソールアプリを単にデータベースに接続してWebアプリケーションを経由せずに直接データを取得するのはなぜですか?一部のユーザーにとってビューを利用できるようにする必要がある場合でも、コンソールアプリケーションでこれを行うことができます。次に、外部アプリがアクセス権を必要としないように適切に制限できるAuthorization属性を使用してビューへのアクセスを制御します。

+0

これだけです。レンダリングされた出力*は、コンソールアプリケーションに必要なデータです。私はコンソールアプリケーションが消費するかなりhtmlを生成するビューを使用しています。 – ChadT

+0

[あなたは] [ページ]からいくつかの詳細を隠していると示しているので、データベースから詳細を提供するだけです。必要な細部の生成をBLまたはDALにプッシュし、コントローラとコンソールアプリから両方を消費します。コンソールアプリケーションでは、 には「きれいなHTML」が必要ではありません。 – tvanfosson

+0

コンソールアプリケーションは、HTMLを使用してレポートを生成しますが、ビューを使用してレポートを描画しています。 – ChadT

関連する問題