2011-12-20 30 views
1

私はASP MVC3アプリケーションを開発しており、Webページ(主にユーザーとグループを作成する)のセキュリティに関連するビューをいくつか持っています。このページはローカルネットワーク内のユーザーのみが使用します。ユーザーとパスワードを使用してアクセスする必要がある場合でも、ネットワーク外のアプリケーションを使用しているユーザーがセキュリティ対策としてアクセスするのを防ぎます。ASP MVC:一部のビュー/ページをローカルネットワークからのみアクセス可能にする方法はありますか?

これはIISとASPのMVC3で可能ですか?

+0

メンバーシップ/ロールAPIを使用すると便利です。 http://stackoverflow.com/questions/5874239/best-approach-to-user-roles-with-an-intranet-applicationを参照してください。 – jrummell

+0

しかし、web.configを使用する方が簡単です。私はメンバーシップ/ロールAPIを使用していませんでした。なぜなら、このシステムのセキュリティが処理される方法は、それとよく合わないレガシーシステムから継承されたからです。 – groovejet

答えて

1

はい、web.configを使用すると、IPアドレスによるパスへのアクセスを制限できます。例えば

<location path="/localOnly/"> 
    <system.webServer> 
    <security> 
     <ipSecurity allowUnlisted="false"> 
     <clear/> 
     <add ipAddress="127.*.*.*"/> 
     <add ipAddress="1.*.*.*"/> 
     <add ipAddress="192.*.*.*"/> 
     </ipSecurity> 
    </security> 
    </system.webServer> 
</location> 

は、だからあなたのサイトが稼働しているローカルサブネット上で確認し、それを追加します。

編集:すでに"even though they need to access with their user and password"の部分はデフォルトのmvcのものを使用して管理していると思いますか?

+0

はい、私はフォーム認証を使用します追加のセキュリティ対策としてこれを実行します – groovejet

+0

フォーム認証を正しく使用する場合、これは完全に不要です。 – jrummell

+0

どのようにフォーム認証を使用してそれを行うのですか? – groovejet

0

あなたのユーザーはどのようにログインしていますか?ユーザーロールを割り当てて、特定のロールが特定のビューにアクセスできないようにすることはできますか?

0

@Ron Sijmの答えに基づいて、このようなことをしたいように見えます。

追加のアクセス(例えば管理者)を必要とするユーザーに役割を割り当て、その後、この役割を必要とするアクションにAuthorize属性を使用します。

[Authorize(Roles = "Admin")] 
public ViewResult SecureAction() 
{ 
} 

しかしこれは、ロールプロバイダが必要です。既にロール管理があるので、custom role providerの実装を強くお勧めします。

関連する問題