如果用户使用ASP.NET直接在浏览器中访问URL,如何重定向到登录页面

我正在研究asp.netentity framework。 我只想通过登录访问页面,而不是直接输入页面的URL。 如果用户输入页面的URL并尝试访问它,则应将其重定向到登录页面。 我怎样才能做到这一点? 用户应该使用DB的用户名和密码登录。 我是ASP.NET的新手

您正在寻找的function可以通过将以下身份validation/授权部分添加到ASP.NET Web.config文件来实现,如以下示例所示:

          

它基本上拒绝未经身份validation的用户的所有访问:如果此类未经身份validation的用户尝试访问您网站上的任何页面,则他/她将被重定向到Login.aspx页面(详情请访问MSDN https://msdn.microsoft.com/en -us / library / wce3kxhd.aspx , https: //msdn.microsoft.com/en-us/library/xdt4thhy.aspx )。

希望这会有所帮助。

如果您使用asp.net Identity来记录用户(我相信这是新MVC项目的默认设置),那么您可以使用数据注释在控制器上设置此function。 它应该看起来像

 //GET [Authorize] public ActionResult Index(){ return View(); } 

这可能会自动执行您想要的操作。 如果您最终需要明确定义Authorize属性将重定向用户的位置,那么这里有一个很好的答案。

使用Session变量。 用户登录后,立即创建会话变量并在其中存储一些值。 在每个页面加载事件中,对会话变量是否存在设置if条件。在else条件下,将用户重定向到登录页面。每次注销时,释放会话变量。

您可以在后面的代码中尝试这个

  if (User.Identity.IsAuthenticated == true) { Response.Redirect("The Page you want"); } else Response.Redirect("Login.aspx"); // redirect it to your login page