【发布时间】:2016-02-29 08:32:24
【问题描述】:
简而言之,您如何从剃刀视图检查是否需要授权?
注意:@User.Identity.IsAuthenticated 不会这样做。我对用户是否经过身份验证或授权不感兴趣 - 而是页面是否需要“全局”(布局良好)级别的授权/身份验证。
假设有 2 个控制器,如下所示:
[Authorize]
public class SecretController : Controller
{
[AllowAnonymous]
public ActionResult SecretClue()
{
return View("oo lala");
}
public ActionResult Secret()
{
return View("Jane kissed ...");
}
}
public class RecipesController : Controller
{
public ActionResult RoastBoar()
{
return View("One wild boar...");
}
[Authorize]
public ActionResult SecretSauce()
{
return View("Mustard, mixed with...");
}
}
我将如何从_Layout razor 视图确定页面是否需要授权/身份验证,以便在需要时显示<p>Remember SHHHH!</p> 行?
<!DOCTYPE html>
<html>
<head></head>
<body>
<div>
@if (ViewBag.IsAuthenticationRequired ?? false)
{
<p>Remember SHHHH!</p>
}
</div>
</body>
请不要问我为什么要这样做,如果可以,请回答问题。
【问题讨论】:
-
SDK - 这与经典 ASP 无关。
-
@Paul - 抱歉匆忙标记
-
您是否知道如果您确实需要授权而您没有授权,您将不会获得该页面? (我假设是这种情况,只是问)。在这种情况下,您的问题应该是:“确定页面是否需要授权/身份验证”/“检查授权是否需要”
-
除了 .cshtml 之外,您可以对您的代码进行任何更改吗?最简单的选择是扩展
[Authorize] -
@freedomn-m 是的,我知道 - 这是处理承载令牌/Cookie 身份验证不匹配的快速而肮脏的方式。我确信有更好的方法,但我稍后会在时间允许时讨论。
标签: asp.net-mvc razor