1

パブリック環境で構成され、管理環境を分離する新しいasp.net mvc4 Webアプリケーションを作成していますが、これを行うためのベストプラクティスは何だろうと思っています。

管理者は mysite.com/admin にログインしてください。

4

2 に答える 2

1

bluetoff が書いたように組織化することが可能です - 領域を追加します。ただし、管理部分がそれほど複雑でない場合は、別のコントローラー「管理者」を作成し、属性でアクセスを制限することをお勧めします。

[Authorize(Roles = "admin")]
public class AdminController : Controller

LogOn メソッドで、ユーザーが「admin」ロールの場合、AdminController へのリダイレクトを追加します。

public ActionResult LogOn(LogOnModel model)
        {
            if (ModelState.IsValid)
            {
                if (Membership.ValidateUser(model.UserName, model.Password))
                {
                    FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);

                    if (Roles.IsUserInRole(model.UserName, "admin"))
                    {
                        return Redirect("Index", "Admin");
                    }
                    else
                    {
                        return RedirectToAction("Index", "Home");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Error");
                }
            }
于 2013-09-29T15:17:20.967 に答える
1

過去に私にとって最も効果的だったパラダイムは、管理エリアを設定することです。領域ができたら、管理機能をアプリケーションの残りの部分から明確に分離することができます。すなわち/admin/users /admin/yourentities

管理領域をアプリケーションの他の部分と区別するには、ユーザー ロールを設定し、ロールに基づいて管理ユーザーを制限する必要があります。このようにして、ユーザー タイプのデータベース テーブルが 1 つ、ロール テーブルが 1 つになり、シンプルで保守しやすく、理解しやすい構造になります。

ロールを利用するには、カスタム アクション フィルタを作成して、ユーザー ロールを確認し、アクセスを管理者ロール ユーザーのみに制限できます。

于 2013-09-29T13:31:06.447 に答える