[英]How to make login page a startup page in ASP.NET MVC web application?
我想创建一个在我启动ASP.NET MVC Web应用程序时打开的登录页面。 我还想在成功登录后自动将用户重定向到Home / Index页面。
此外,登录页面有一个注册按钮,它被重定向到注册页面,我想在注册成功后将注册页面重定向到主页/索引。
您不希望将登录设置为主页。 这不是一个好的设计。 主要是因为用户登录后在浏览器中输入https://yoursite.com
,您不希望再次显示“登录”页面。
相反,您只需要将[授权]应用于家庭控制器。
[Authorize]
public class HomeController : BaseController
{
// ...
}
或全局过滤器
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new AuthorizeAttribute());
}
}
如果用户访问您的主页,他/她将首先使用QueryString中的 ReturnUrl重定向到Login Page。
例如 , https://yoursite/Account/Login?ReturnUrl=%2f
确保在web.config中的loginUrl中设置登录页面。
<system.web>
...
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880"/>
</authentication>
</system.web>
您有两种选择:1。在登录页面注册默认路由
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Default",
"{controller}/{action}",
new { controller = "Home", action = "Login"}
);
}
路由是它的最佳选择。您可以通过在配置文件中进行更改来设置默认页面。您会发现有两个配置文件:1.app.config 2.route.config
通过使用Route Config,您也可以重写您的网址: -
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional
}
);
}
}
请注意,任何MVC应用程序必须至少具有一个路由定义才能运行。 在上面,名为“Default”的路径模板被添加到routes集合中。 花括号中的项包含路径参数,并由参数名称表示为花括号之间的占位符。 路径段由正斜杠分隔(非常类似于标准URL)。 请注意我们的路由指定的隐含相对URL如何与MVC约定匹配:
~/{controller}/{action}
您也可以通过以下方式更改URL: - routes.MapRoute(名称:“SiteMap”,url:“sitemap”,默认值:new {controller =“Static”,action =“SiteMap”,id = UrlParameter.Optional },namespaces:new string [] {“name.Web.Controllers”});
设置默认页面: - 最好的方法是更改路线。 默认路由(在App_Start中定义)设置/ Home / Index
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters*
new { controller = "Home", action = "Index",
id = UrlParameter.Optional }
);
作为默认登录页面。 您可以将其更改为您希望的任何路线。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters*
new { controller = "Sales", action = "ProjectionReport",
id = UrlParameter.Optional }
);
希望你对它有一个清晰的认识
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.