2010-12-04 6 views
1

1人の特定のユーザーのみに制限付きアクセスを追加して、特定の1つのディレクトリにアクセスすることはできますか?私はweb.configのことを見てきましたが、それはうまく動作しません。ASP.NET MVC - ディレクトリへのユーザーアクセス

だから基本的に私がしようとしているものです:

人=>新しいディレクトリユーザー=>新しいユーザー(ONLY新しいユーザどれも他のアクセス)を作成します。

ありがとうございます。

答えて

1

私が現在取り組んでいるアプリケーションは、MVCサイト内のページへのアクセスを管理するために、メンバーシップとロールプロバイダ(両方のカスタム)と共にAuthorizeデコレーションを使用します。

[Authorize(Users="MyUsername")] 
public ActionResult Banking() 
{ 
    return View(); 
} 

[Authorize(Roles="SysAdmin, BusinessOwner")] 
public ActionResult Banking() 
{ 
    return View(); 
} 

私は、これはあなたが任意の[承認]または役割&ユーザーがログインしているユーザー(何の飾り)を公衆持つことができないとして、非常に柔軟である見つけます。個人的には、ユーザーに承認されたアプリケーションを構築することは決してありません。ロールはもっと拡張可能なオプションです(これは1人のユーザーしか含まれていなくても)私がこれをしない主な理由が2つあります。 appと2番目に装飾にユーザーを追加するには、アプリケーションの再コンパイル/再デプロイが必要ですが、ほとんどの状況でユーザーを役割に関連付けるのは、通常、アプリケーションのビジネスロジックが実行時に処理するデータベースの関連付けです。あなたのweb.configファイルで

カスタムプロバイダを使用するようにこれに似たような設定:あなたがで終わるだろう

using System.Web.Security; 

namespace MyDAL 
{ 
    class MyMembership : MembershipProvider//[ctrl + .] to create stubs 
    { 
     //Use Visual Studio to generate all the MembershipProvider stubs [ctrl + .] 
    } 
} 

<system.web> 
<membership defaultProvider="MyMembership" userIsOnlineTimeWindow="30"> 
    <providers> 
    <clear/> 
    <add name="MyMembership" type="MyDAL.MyMembership, MyDAL"/> 
    </providers> 
</membership> 
<roleManager defaultProvider="MyRole" enabled="true" cacheRolesInCookie="true"> 
    <providers> 
    <clear/> 
    <add name="MyRole" type="MyDAL.MyRole, MyDAL" /> 
    </providers> 
</roleManager> 

次にあなたがプロバイダを継承するクラスを作成します新しいNotImplementedException()をスローするメソッドがたくさんあります。これらのヒープがありますが、すべてを埋める必要はありません。アプリケーションに関連するものを完成させ、残りはそのまま残してください。

関連する問題