0

asp.net mvc 4 プロジェクト内に「管理」領域を作成しました。今のところ、このエリアには基本的なものしかありません。理想的には、アプリケーションが実行されたら、ユーザーが URL に /Admin と入力し、管理者インデックス ビューにリダイレクトされるようにしたいと考えています。しかし、プログラムを実行すると、「管理者が見つかりません」というエラーが表示されます?? どこか参照がありませんか??

また、通常のユーザー ログイン ページが最初にレンダリングされるビューです。そのログイン ページをバイパスして、[管理] セクションにアクセスする必要があります。ただし、次の行が 2 番目のログイン オプションを妨げていると思います。

 WebSecurity.InitializeDatabaseConnection("Portal.Model.PortalDBContext","PatientPortalAccount", "PatientID", "Username", autoCreateTables: true);

通常のユーザー テーブルを変更してロールを含めることはできないことに注意してください。あなたがまだ気づいていないなら、私はまだ学んでいるので、長々とした質問をお詫びします...

管理コントローラ、

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;
 using System.Web.Mvc;

namespace Portal.Web.Areas.Admin.Controllers
 {
public class AdminController : Controller
{
    //
    // GET: /Admin/Admin/

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

ビューを持つインデックスactionResultを使用します。

 @model Portal.Model.AdminDetails
 @{
ViewBag.Title = "Admin";
Layout = "~/Views/Shared/Login.cshtml";
}

この領域には、生成された .cs ファイル AdminAreaRegistration もあります。

  using System.Web.Mvc;

  namespace Portal.Web.Areas.Admin
  {
  public class AdminAreaRegistration : AreaRegistration
  {
    public override string AreaName
    {
        get
        {
            return "Admin";
        }
    }

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Admin_default",
            "Admin/{controller}/{action}/{id}",
            new { controller = "Admin", action = "Index", id = UrlParameter.Optional },
            new [] { "Admin.Controllers" }
        );
    }
}
}

そしてGlobal.asaxファイル内....

  using System;
  using System.Linq;
  using System.Web.Http;
  using System.Web.Mvc;
  using System.Web.Optimization;
  using System.Web.Routing;
  using WebMatrix.WebData;

  namespace Portal.Web
  {
// Note: For instructions on enabling IIS6 or IIS7 classic mode, 
// visit http://go.microsoft.com/?LinkId=9394801

  public class MvcApplication : System.Web.HttpApplication
  {
    protected void Application_Start()
    {
        WebSecurity.InitializeDatabaseConnection("Portal.Model.PortalDBContext",             "PatientPortalAccount", "PatientID", "Username", autoCreateTables: true);

        //BOC - Remove Web Forms View Engine
        ViewEngines.Engines.Clear();
        ViewEngines.Engines.Add(new RazorViewEngine());

        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        AuthConfig.RegisterAuth();
    }
}
}
4

1 に答える 1