2011-01-05 49 views
1

在ASP.NET MVC2如何配置一個網站,以便在默認情況下是不需要身份驗證,但一個特定的控制器上我希望Windows身份驗證ASP.NET MVC2 Windows身份驗證。對具體控制器

編輯:我不認爲這是可能根據我的測試。

回答

0

我不認爲這是可能的,因爲您需要在IIS中的站點級別設置Windows身份驗證。您需要兩個獨立的網絡應用程序才能使用此功能。

3
[Authorize] 
public class MyController : Controller 
{ 
    public ActionResult Index() 
    { 
    return View(); 
    } 
} 

將需要在MyController所有行動授權,但隨後任何不具備[Authorize]屬性應該是公開訪問。

您還需要在web.config中設置Windows身份驗證。

<authentication mode="Windows"/> 

This link may be helpful.

編輯

唯一的一次應該有必要創建一個單獨的應用程序,如果你需要在同一站點內同時使用Windows和窗體身份驗證 - 例如,如果您需要表單身份驗證,以便用戶點擊(例如討論論壇),但需要管理員區域的Windows身份驗證。由於身份驗證方法是在應用程序級別設置的,並且不能被覆蓋,在這種情況下,需要進行Windows身份驗證的應用程序部分必須在IIS中拆分爲單獨的Web應用程序和虛擬目錄。

+0

我實際上已經嘗試過,但是當我更改我的web.config以使用Windows身份驗證時,它會提示我登錄所有請求(即使沒有[Authorize])。有什麼方法可以將認證範圍限定在特定的路由或其他? – 2011-01-05 18:24:40

+0

你不能通過路線來完成......嗯。 Web配置中有一個deny = ...屬性可能是必需的。讓我看看。 – 2011-01-05 18:25:45

+0

你不能在Action(而不是控制器)上放置[Authorize]屬性嗎?還是隻有MVC3? – 2011-01-05 18:31:01