我有一个名为admin的目录。 此目录没有物理路径,因为它被硬编码为我的管理区域的前缀。
如何使用标准身份验证保护此路径? 我希望只有用户Admin才能登录该区域。 但主页需要为每个用户提供。
答案 0 :(得分:4)
如果您使用的是任何内置身份验证变体:
[Authorize(Roles = "Administrator")]
public class AdminController : Controller
{
}
修改强>
限制特定用户:
[Authorize(Users = "Admin")]
public class AdminController : Controller
{
}
<强> EDIT2 强>
是的,你可以,但它有点像 hack 。创建自己的类并从RouteBase
派生它。
public class MyRoute : RouteBase
{
public override RouteData GetRouteData(HttpContextBase context)
{
if (context.Request.Uri == XXX && context.User != YYYY)
return forbiddenRoute;//redirect to forbidden page.
else
return null;
}
}
然后将其添加到global.asax。