gpt4 book ai didi

c# - 在 MVC3 中未授权页面时重定向用户

转载 作者:行者123 更新时间:2023-11-30 12:14:02 25 4
gpt4 key购买 nike

我有一个mvc 3 项目,我使用AD 来授权用户。我有一个页面,只有具有“管理员”角色的用户才能访问。

我已经让登录生效并授权用户,这样只有管理员才能访问网站的管理部分。我遇到的问题是当用户不是管理员时,我似乎无法显示正确的错误消息。

这是我的 actionFilterattribute

public class AdminOnlyAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
bool isAuthorised = false;

IPrincipal user = filterContext.HttpContext.User;
if (user.Identity.IsAuthenticated)
{
if (user.IsInRole("Admin"))
{
isAuthorised = true;
}
}

if (!isAuthorised)
{
//error message here
}
}

这是我的管理员 Controller

    [AdminOnly]
public ActionResult Index()
{
//admin stuff
}

感谢任何帮助,提前致谢

最佳答案

如果 isAuthorised 为假,您需要将他们带到一个可以显示“您无权访问该页面等”的页面。要进行重定向,您必须执行以下操作(在我的示例中,我将它们重定向到 Account/AccessDenied,这将返回一个包含“您没有访问权限等...”消息的 View :

if (!isAuthorised)
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary {{"action", "AccessDenied"},
{"controller", "Account"}});
}

关于c# - 在 MVC3 中未授权页面时重定向用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10483036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com