0

これはプロジェクトのセットアップやその他のいくつかの要因の影響を受ける可能性があることはわかっていますが、私の場合のベストプラクティスは何なのか疑問に思っていました.

Free、Pro、Prem の 3 つのプランがある Web アプリがあります。Free プランでは、ユーザーを特定の URL に制限したいと考えています。

ユーザーはプランを変更できるため、無料プランに固執すると、他の URL は表示されません。ただし、アップグレードしてからダウングレードすると、他の URL にアクセスした可能性があります。

私のすべてのコントローラーには、ユーザーについて必要なすべての情報があります。たとえば、ユーザーが使用しているプラ​​ンや表示しようとしている URL などです。

私はこの種のことにあまり詳しくないので、最初に考えたのは、URL ごとに制御することでした。たとえば、無料プランのユーザーが表示できないコントローラー アクションで、ユーザーが使用しているプラ​​ンを確認し、無料プランの場合は 404 ページなどにリダイレクトします。

これは十分に簡単なアプローチですが、もっと良い方法があるかどうか疑問に思っていましたか?

4

1 に答える 1

2

無料レベルよりも高いアクセスレベルを必要とするコントローラーメソッドに[Authorize]属性を追加したいようです。たとえば、次のようになります。

public ActionResult ViewForAllUsers() {
    return View();
}

[Authorize(Roles = "Prem, Pro")]
public ActionResult ViewForPremAndPro() {
    return View();
}

[Authorize(Roles = "Pro")]
public ActionResult ViewForProOnly() {
    return View();
}
于 2013-02-07T01:55:52.807 に答える