我有一个 .Net Web 项目,但是在大多数情况下,我们使用的是 html 页面(理想情况下,我们应该有一个网站项目)。这些页面使用RequireJS加载依赖项,因此唯一的Razer部分是在加载初始 html 页面时发生的。现在,这个站点既是主页又是管理页面。主页不需要与管理页面处于同一级别。因此,我们使用mapPageRoute
主页来简单地指向适当的主页 html 页面。
现在对于管理页面,我们需要进行身份验证并确保用户是管理员。目前,为了实现这一目标,我们有一个AdminController
它返回一个视图(我们为此视图添加了一个自定义位置,因为它不在默认的 Views 文件夹中)。所以我们的控制器看起来像这样:
namespace XXXXX.YYY.Web.Controllers
{
public class AdminController : Controller
{
[RequiresPrivilegeAttribute(Constants.Security.Privileges.ADMINISTER_APPLICATION)]
public ActionResult Index()
{
return View();
}
}
}
我想做的是遵循与主站点相同的模式,通过定义一个简单地加载 html 文件的路由。对于主页,我们在RouteConfig
(发生在App_Start
)中使用它:
routes.MapPageRoute(
"",
String.Empty,
"~/ui/dist/index.html"
);
对于 Admin 站点路由,我们的第一个和第二个参数是“Admin”,第三个参数是 admin index.html 的位置(“~/ui/dist/admin/index.html”)。
这不适用于管理站点,因为它没有考虑管理员安全性。所以问题是:如何在不使用控制器的情况下保护 html 文件的路径?
此外,我们希望最终摆脱 .NET MVC 应用程序,并将其替换为纯 HTML SPA。所以我想在不使用控制器的情况下完成此操作。