我正在研究'ASP.NET MVC 4'应用程序并使用'SimpleMembershipProvider'。该应用程序将在Intranet中使用,并且没有可用于未授权用户的内容,因此我希望在让用户访问实际网站内容之前强制登录。如何强制用户使用ASP.NET MVC 4登录查看任何内容
我认为这应该是一个相当平凡的任务,但这是我第一次实施这样的逻辑,我也想做MVC 4/SimpleMemebrship
风格,所以我寻求建议。
我觉得应该可以实现的方式是先在web.config补充一点:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="15" slidingExpiration="true" enableCrossAppRedirects="false" protection="All" />
</authentication>
毕竟我不会有动作,这将允许匿名所以我认为这是更好地把这个这里。
而改变我的默认路由:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
);
这在我看来,将是允许匿名的唯一动作。不过,我有点担心将默认路由更改为Login
我不确定这是否会导致一些意外的缺陷。
我也有这个想法,以保持由MVC 4 Internet Template
和创建的默认结构刚刚离开Home
控制器承担责任的Index
行动,但由于逻辑是清楚的,我不喜欢这个方案 - 用户必须登录为了获得任何形式的访问,甚至在我心中都有一些访问权限。
那么实现这种行为的方式是什么?为了实现这一权利,我应该做些什么基本步骤?