1

我有一个网页,可以通过以下方式访问

myapp.mydomain.com/Account/Login

我在站点的根文件夹中有我的项目应用程序,但是如果我在应用程序本身中编辑路由配置,这会破坏事情。

我正在尝试使用 URL 重写模块,以便当用户请求

myapp.mydomian.com

它会自动将他重定向到上面的完整 URL。

我无法弄清楚如何以这种方式配置它!

4

1 回答 1

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

于 2013-09-05T22:01:54.740 回答