2014-09-22 178 views
0

我有一個遺留的應用程序,我們將轉換爲使用MVC 5應用程序模板。我們有一個自定義的API方法,以保持例子簡單,讓我們只說這是簽名是:MVC 5自定義身份驗證

bool Login(username, password); 

如何設置用戶的登錄,這樣我可以使用的東西,像[授權]屬性?目前我們想要最簡單的方法來讓我們開始開發網站。

我試着實施this手動設置User.Identity。但是,這會在每個後續請求中重置。

回答

0

最後我將邏輯提取出來給賬戶控制器。這將處理登錄並將結果存儲在會話中。然後,我只是需要重寫System.Web.Mvc.AuthorizeAttribute類和AuthoriseCore方法如下:

using System.Web; 
using System.Web.Mvc; 

namespace HomeHealth.Web.Infrastructure 
{ 
    public class HomeHealthAuthorizeAttribute : AuthorizeAttribute 
    { 

     protected override bool AuthorizeCore(HttpContextBase httpContext) 
     { 
      return WebSession.SdkContext.IsAuthenticated; 
     } 

    } 
} 

它有一些輔助代碼清理訪問會話中的語境,但是這無關緊要。關鍵是這是你可能想要的屬性/方法。然後,您可以使用以下標記控制器/方法:

[HomeHealthAuthorize] 
public class PatientController : BaseController 

然後所有檢查/重定向都爲您完成。