如何在ASP.NET MVC Web应用程序中将登录页面设置为启动页面?

The*_*t12 7 c# asp.net asp.net-mvc

我想创建一个在我启动ASP.NET MVC Web应用程序时打开的登录页面.我还想在成功登录后自动将用户重定向到Home/Index页面.

此外,登录页面有一个注册按钮,它被重定向到注册页面,我想在注册成功后将注册页面重定向到主页/索引.

Win*_*Win 14

您不希望将登录设置为主页.这不是一个好的设计.主要是因为用户登录并进入https://yoursite.com浏览器后,您不想再次显示"登录"页面.

相反,您只需要将[授权]应用于家庭控制器.

[Authorize]
public class HomeController : BaseController
{
  // ...
}
Run Code Online (Sandbox Code Playgroud)

全局过滤器

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
        filters.Add(new AuthorizeAttribute());
    }
}
Run Code Online (Sandbox Code Playgroud)

如果用户访问你的主页,他/她将被重定向到登录页面先用RETURNURL查询字符串.

例如,https://yoursite/Account/Login?ReturnUrl=%2f

确保在web.config 中的loginUrl中设置登录页面.

  <system.web>
    ...
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="2880"/>
    </authentication>
  </system.web>
Run Code Online (Sandbox Code Playgroud)

  • 如果这不是好设计,为什么facebook会这样做 (2认同)

Vid*_*kas 3

您有两个选择: 1. 注册登录页面的默认路由

public static void RegisterRoutes(RouteCollection routes)
    {

        routes.MapRoute(
            "Default", 
            "{controller}/{action}", 
            new { controller = "Home", action = "Login"} 
        );

    }
Run Code Online (Sandbox Code Playgroud)
  1. 使主页/索引需要授权访问,这样您将确保如果登录用户正在访问您的网站,他会直接进入经过身份验证的页面而不是登录