我正在使用ASP.NET核心Razor引擎。我想确保用户是否去了索引页面以外的任何其他页面(cshtml文件),将它们重定向到索引页面。
“索引”页面是用户登录的位置。我的策略是在每个页面上显示用户的名字。如果名字为空重定向到索引页面。
我遇到了如何重定向的问题,还是有更好的方法来做到这一点?
这是我的代码:
<h1>Hello @TempData["first_name"] @TempData["last_name"]</h1>
@if(TempData["first_name"]!= null)
{
@{Response.Redirect("~/Index");
}
答案 0 :(得分:1)
将AuthorizeAttribute与forms authentication结合使用。
使用AuthorizeAttribute
使用AuthorizeAttribute标记操作方法时,对该操作方法的访问仅限于经过身份验证和授权的用户。如果使用属性标记控制器,则控制器中的所有操作方法都受到限制。在使用AuthorizeAttribute属性标记的控制器中,您可以使用AllowAnonymousAttribute属性指定特定操作方法不仅限于授权用户。
“授权”属性允许您指明授权仅限于预定义角色或单个用户。您可以使用“角色和用户”属性指定允许哪些角色或用户访问操作方法。这使您可以高度控制谁有权查看网站上的任何页面。
如果未经授权的用户尝试访问使用Authorize属性标记的方法,则MVC框架将返回401 HTTP状态代码。如果站点配置为使用ASP.NET表单身份验证,则401状态代码会导致浏览器将用户重定向到登录页面。