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

C# 如果用户使用ASP.NET在浏览器中直接输入URL,如何重定向到登录页面,c#,asp.net,entity-framework-6,C#,Asp.net,Entity Framework 6,我正在研究asp.net实体框架。我想访问的网页只通过登录,而不是直接输入网页的URL。如果用户输入页面的URL并试图访问它,那么他应该被重定向到登录页面。 我该怎么做?用户应该使用DB的用户名和密码登录。 我不熟悉ASP.NET使用会话变量。 用户登录后,立即创建会话变量并在其中存储一些值。在每个页面加载事件中,对会话变量是否存在设置一个if条件。在else条件中,将用户重定向到登录页面。在每次注销时,释放会话变量。通过向ASP.NETWeb.config文件中添加以下身份验证/授权部分,可以

我正在研究asp.net实体框架。我想访问的网页只通过登录,而不是直接输入网页的URL。如果用户输入页面的URL并试图访问它,那么他应该被重定向到登录页面。
我该怎么做?用户应该使用DB的用户名和密码登录。 我不熟悉ASP.NET

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

通过向ASP.NET
Web.config
文件中添加以下身份验证/授权部分,可以实现您正在寻找的功能,如以下示例所示:

<system.web>
  <authentication mode="Forms">
    <forms name="SomeName" 
           loginUrl="Login.aspx" 
           protection="All" 
           path="/">
    </forms>
  </authentication>
  <authorization>
    <deny users="?" />
  </authorization>
</system.web>

,)


希望这会有所帮助。

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

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

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

您可以在后台代码中尝试此方法

        if (User.Identity.IsAuthenticated == true)
        {
            Response.Redirect("The Page you want");
        }

        else
            Response.Redirect("Login.aspx"); // redirect it to your login page

用户应该如何登录?使用来自数据库或active directory的用户名和密码?用户应该使用来自数据库的用户名和密码登录。不要这样做。这是非常糟糕的设计。使用身份验证部分,或。不要依赖自己为每一页编写代码。