質問

私は、ユーザーのアクセス検証に使用する良好なパターンを見つけようとしています。

基本的に私はアクセスを定義するために使用されるユーザの役割フレームワークを持っていたWebフォームアプリケーションで、つまり、ユーザーが役割に割り当てられていた、と「ページが」ページへのアクセス権を付与されました。私はそれに記載されているすべてのページで、データベース内のテーブルを持っていました。ページは、そのアクセスが親から継承されてしまった子ページを持つことができます。

アクセスを定義するとき、私はページへの役割アクセスを割り当てます。ロール内のユーザーは、ページへのアクセスを持っていました。同様に管理することが非常に簡単です。私はこれを実装する方法は、すべてのページが継承することを基本クラスにありました。 pageloadに/私はページのURLと検証のアクセスをチェックし、適切に行動するだろうinitにます。

しかし、私は今、私は私の以前のソリューションを動作させるための良い方法を見つけることができませんしかし、MVCアプリケーションと同様のものを実装する必要性に取り組んでいます。純粋に私はURLパスとして静的なページを持っていないので。また、私は、私は今ではなく、その後のaspxページをコントローラを持っているように最善これにアプローチする方法がわからないです。

私はMVCSitemapprovider見てきましたが、それは、データベースをオフに動作しない、それは、サイトマップファイルを必要とします。私はその場でユーザーpersmissionsを変更する制御する必要がます。

の任意の考え/提案/ポインタをいただければ幸いです。

役に立ちましたか?

解決

はあなたの技術は簡単に自分のActionFilterを作成することによって達成されます。 http://msdn.microsoft.com/en-us/library/dd410056。 ASPXする

あなたはその後、コントローラやアクションメソッドにこの属性を適用し、非常に簡単に自分のページのセキュリティをロールバックすることができます。

public class MinmalSecurity : ActionFilterAttribute
{
    private string _roles;
    public MinmalSecurity(string roles)
    {
        _roles = roles;
    }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        //go to database,find permissions, redirect or proceed as nescessary

        base.OnActionExecuting(filterContext);
    }
}

他のヒント

あなたはMVCアプリケーションではなく、空白のウェブサイトを作成するときに

は、含まれる基本的なASP.NETメンバシッププロバイダがあります。それはノーコーディングに少しで、あなたが探している全力を尽くします。

ここでMSDNがある: http://msdn.microsoft.com/en -us /ライブラリ/ yh26yfzy.aspxする

ます。http://mvcmembership.codeplexを

はここよりに建てられたものよりも機能を拡張CodePlexのプロジェクトです。 COM /

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top