0
我已經創建了我的asp.net MVC 4項目中的「管理」區域。目前這個領域只是基本的。 理想的情況下,一旦應用程序運行,我想用戶在URL輸入/ Admin和被重新定向到管理索引視圖。 但是,當我運行該程序時,我收到一個錯誤,指出「無法找到管理員」? 我錯過了某處的參考?4的mvc應用程序不拾取區內容
此外,一個普通的用戶登錄頁面是渲染的第一個視圖,我需要繞過該登錄頁面進入管理部分。 但是我相信下面的行阻止了第二個登錄選項。
WebSecurity.InitializeDatabaseConnection("Portal.Model.PortalDBContext","PatientPortalAccount", "PatientID", "Username", autoCreateTables: true);
請記住,我不能更改常規用戶表以包含角色。 如果你還沒有注意到已經我還在學習,所以道歉的長篇大論問題...
admincontoller,
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();
}
}
}
偉大的,那做了三ck,謝謝。無需登錄即可查看管理索引視圖的任何提示?我是否正確地說Global.asax中的「WebSecurity」選項卡正在阻止這樣的操作?請理解我不能讓普通用戶成爲管理員,因爲常規用戶表與其他產品同步。 – mkell
@mkell在控制器上添加[Auhorize]屬性強制重定向到登錄頁面 – Gregoire
我在公共類AdminController上添加了它:Controller,恐怕沒有什麼區別。在我可以通過URL訪問管理員索引視圖之前,常規用戶仍然需要登錄。 – mkell