繁体   English   中英

URL重写IIS,重定向到登录页面

[英]URL Rewrite IIS, Redirect to login page

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

myapp.mydomain.com/Account/Login

我的项目应用程序位于站点的根文件夹中,但是如果我在应用程序本身中编辑路由配置,则可能会造成问题。

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

myapp.mydomian.com

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

我不知道如何以这种方式配置它!

根据您在问题下的评论中的回答:

“他们去myapp.mydomian.com进行登录,那就是他们应该看到的第一页”

强制用户始终必须登录才能使用您的应用程序的正确方法是使用System.Web.Mvc.Authorize属性。

不要尝试重写规则或弄乱路由,也不要通过web.config文件<authorize>配置元素来驱动它。

以模板MVC Internet应用程序为例,我们有两个控制器:

  • AccountController
  • 家庭控制器

如果我们只希望保护MVC应用程序的某些部分,则可以使用[Authorize]属性装饰每个控制器类。 例如:

[Authorize]
public class HomeController : Controller
{
    ....
}

但是,如果您希望保护每个控制器,那将变得非常乏味。 相反,您可以通过在FilterConfig类中找到的RegisterGlobalFilters静态方法中添加一行来全局地执行此操作。 此类位于项目的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
}

还要确保在system.web部分下的web.config文件中,您具有:

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>

开箱即用,无论如何都应该这样配置。

有关更多信息,请阅读:

http://www.davidhayden.me/blog/asp.net-mvc-4-allowanonymous-attribute-and-authorize-attribute

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM