我有一个可以通过
访问的网页myapp.mydomain.com/Account/Login
我的项目应用程序位于该站点的根文件夹中,但如果我在应用程序本身内编辑路由配置,则会破坏这些内容。
我正在尝试使用URL重写模块,以便在用户请求时
myapp.mydomian.com
它会自动将他重定向到上面的完整网址。
我无法弄清楚如何以这种方式配置!!
答案 0 :(得分:0)
根据您在问题评论中的答案:
“他们去myapp.mydomian.com登录,这是他们应该看到的第一页”
强制用户始终登录以使用您的应用程序的正确方法是使用System.Web.Mvc.Authorize
属性。
不要尝试重写规则或弄乱路由,也不要从web.config
文件<authorize>
配置元素中删除它。
以模板MVC Internet Application为例,我们有两个控制器:
如果我们希望仅保护MVC应用程序的某些部分,那么您将使用[Authorize]
属性装饰每个控制器类。例如:
[Authorize]
public class HomeController : Controller
{
....
}
但是,如果您希望保护每个控制器,那将会相当繁琐。相反,您可以通过向RegisterGlobalFilters
类中的FilterConfig
静态方法添加一行来全局执行此操作。此类位于项目的App_Start
文件夹(FilterConfig.cs
)。
打开此文件,确保将以下行添加到RegisterGlobalFilters
静态方法:
filters.Add(new AuthorizeAttribute());
例如:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new AuthorizeAttribute()); // <-- Add me
}
另外,请确保在您的web.config
部分下的system.web
文件中:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
开箱即用它应该像这样配置。
欲了解更多信息,请阅读:
http://www.davidhayden.me/blog/asp.net-mvc-4-allowanonymous-attribute-and-authorize-attribute