c#MVC请求IsAuthenticated renderbody异常

时间:2014-05-05 12:31:48

标签: c# asp.net-mvc authentication razor

我有以下剃刀代码来处理只有经过身份验证的用户才能看到内容。但是,如果用户进入Home / Login,我想绕过这个。

@if (Request.IsAuthenticated) {
@RenderBody()
}

这可能吗?

3 个答案:

答案 0 :(得分:2)

这不应该在您的_Layout中进行,而应在您的控制器/操作中使用[Authorize]属性进行。

如果您不在那里执行此操作,您将始终看到有关RenderBody的错误未出现在未经身份验证的其他网页请求上。

答案 1 :(得分:1)

当然,你可以这样做:

@ {
    var action = ViewContext.RouteData.GetRequiredString("action")
    if (Request.IsAuthenticated || action == "Login")
        @RenderBody()
}

答案 2 :(得分:1)

请添加控制器或操作aurhorize属性

[Authorize]
public class DefaultController : Controller
{
    [Authorize]
    public ActionResult Index()
    {
        ...
    }
}

@if (WebSecurity.IsAuthenticated) 
{
    @RenderBody()
}