2013-10-02 428 views
2

我有一個使用API​​來驗證用戶的MVC網站,所以當用戶嘗試登錄時,我的服務器會將登錄信息重定向到我的api服務器,以驗證登錄是否成功。如果是,用戶可以進入網站的「私人」部分。如何使用遠程API對用戶進行身份驗證?

如果用戶在應用程序中註冊以及它是哪種類型的用戶(管理員或普通用戶),我想要做的就是驗證API。根據結果​​,我們將被允許或不會看到一些頁面。

我想知道如何做到這一點,我希望你能爲我澄清一些事情。

我的第一個選擇是使用Forms身份驗證及其基礎架構,只是改變服務器檢查憑據的方式(使用API​​而不是數據庫驗證)。那可能嗎?

如果這是不可能的,我可以在我的global.asax中使用方法Application_AuthenticateRequest(object sender,EventArgs e)還是我需要創建自己的IHttpModule?

+2

我建議[ASP.NET MVC - 手動授權人,並堅持通過表單驗證授權(http://stackoverflow.com/questions/12205229/ mvc-asp-net-manually-author-someone-and-persist-the-authorization-via-forms) –

+2

最上面的答案顯示了你需要知道的一切。特別醬是'FormsAuthentication.SetAuthCookie(model.Username,false);'和'FormsAuthentication.SignOut();' –

+0

正是我需要的!謝謝!你能把它作爲答案張貼,所以我可以接受它嗎? – JSBach

回答

4

使用FormsAuthentication.SetAuthCookie(model.Username, false);FormsAuthentication.SignOut();完成工作。儘管很多人推薦它,但我從來不必費心使用自定義會員供應商。

從這個問題的答案頂部覆蓋它MVC ASP.NET - Manually authorize someone and persist the authorization via Forms Authentication

+1

自定義會員供應商通常是矯枉過正。 –

+1

此外,使用除用戶名以外的其他標記也是合法的,只要它對於特定用戶是唯一的。例如,您可以使用唯一ID(如GUID或自動遞增ID)來設置auth cookie。 –

+0

好的,我會做的,謝謝:) – JSBach

相關問題