固定字符串方法-控制器

本文关键字:控制器 方法 字符串 | 更新日期: 2023-09-27 18:03:56

如果用户不是admin并且试图访问某些控制器,则返回"~/Error/Unauthorized"页面。下面是我返回错误页面的方法:

            if (!Models.Authorization.AdminPageCheck(this.User))
            return new RedirectResult("~/Error/Unauthorized");

我能够为ActionResult方法做,但不是为字符串方法,因为它不返回视图。如何保护字符串方法?

固定字符串方法-控制器

最好使用ASP。. NET MVC的内置功能,只需用

注释你的控制器(无论是在类级别,对于所有的动作,还是在动作方法级别)
[Authorize]

如果有人试图调用未登录的方法,他们将被迫使用web.config中配置的方法进行身份验证。

或者,如果使用

[Authorize(Roles = "AdminRole")]

他们将被强制进行身份验证,如果他们还没有,那么他们将根据他们拥有的相关角色被授予或拒绝访问。

这是一个非常普遍的要求,谢天谢地,ASP。. NET MVC团队已经非常全面地处理过了!

您应该更改这些方法以返回ActionResult s。
然后可以return Content(someText, "content/type")

如果你有时有不同的结果,而不仅仅是一个字符串,那么首选的"修复"将是:不返回string;返回ActionResult,当字符串时,

return Content(yourString);

可选指定内容类型/编码

正如SLaks提到的,您可以将字符串方法的返回类型更改为ActionResult,然后使用ContentResult类返回字符串