2010-08-06 81 views
0

我想在我的.NET MVC 2.0應用程序中允許兩種類型的授權。一個會是很好的舊式ID /密碼(表單身份驗證),但我也希望能夠查看請求頁面的標題以獲取ID /密碼。如果提供了,我希望基於此進行授權,通過表單身份驗證並允許用戶進入系統。在MVC中做這件事的最好方法是什麼?.NET MVC 2.0中的多種授權

回答

0

不要認爲這種認證有任何開箱即用的功能。您可以只讀取請求標頭,並檢查它們是否包含您需要的登錄信息,如果是,請執行表單身份驗證,但使用請求標頭中的登錄信息,例如

string userId = String.Empty; 
string password = String.Empty; 
foreach (var key in Request.Headers.AllKeys) 
{ 
    if (key == "UserId") 
     userId = Request.Headers[key]; 
    if (password == "Password") 
     password = Request.Headers[password]; 
} 

if (!String.IsNullOrEmpty(userId) && !String.IsNullOrEmpty(password)) 
    // attempt login 
else 
    // display login page 
0

您可以在global.asax中掛接身份驗證請求,也可以編寫自定義HTTPModule。 HTTPModule特別擅長連接ASP.NET管道中的所有事件,包括身份驗證。

但是,使用這種基於標頭內容的認證似乎是非常高的風險,知道僞造標頭是多麼容易。