如果用户从索引页面以外的页面进入,则重定向用户

时间:2017-01-03 19:41:12

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

我正在使用ASP.NET核心Razor引擎。我想确保用户是否去了索引页面以外的任何其他页面(cshtml文件),将它们重定向到索引页面。

“索引”页面是用户登录的位置。我的策略是在每个页面上显示用户的名字。如果名字为空重定向到索引页面。

我遇到了如何重定向的问题,还是有更好的方法来做到这一点?

这是我的代码:

 <h1>Hello @TempData["first_name"] @TempData["last_name"]</h1>
 @if(TempData["first_name"]!=  null)
 {
     @{Response.Redirect("~/Index");
 }

1 个答案:

答案 0 :(得分:1)

AuthorizeAttributeforms authentication结合使用。

  

使用AuthorizeAttribute

     

使用AuthorizeAttribute标记操作方法时,对该操作方法的访问仅限于经过身份验证和授权的用户。如果使用属性标记控制器,则控制器中的所有操作方法都受到限制。在使用AuthorizeAttribute属性标记的控制器中,您可以使用AllowAnonymousAttribute属性指定特定操作方法不仅限于授权用户。

     

“授权”属性允许您指明授权仅限于预定义角色或单个用户。您可以使用“角色和用户”属性指定允许哪些角色或用户访问操作方法。这使您可以高度控制谁有权查看网站上的任何页面。

     

如果未经授权的用户尝试访问使用Authorize属性标记的方法,则MVC框架将返回401 HTTP状态代码。如果站点配置为使用ASP.NET表单身份验证,则401状态代码会导致浏览器将用户重定向到登录页面。