簡體   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