2014-02-27 62 views
0

我正在創建一個ASP.NET webform應用程序,我擁有不同級別的用戶。我已閱讀約FormsAuthentication,如果我正在實施它,我必須在web.config文件中提供loginUrl。成功驗證後,每個人都被重定向到相同的loginUrl。FormAuthentication重定向到不同的登錄頁面C#

但對於我的網站,我有不同憑據的用戶。因此,當具有登錄憑證的用戶登錄時,系統將其重定向到Mysite.com/Admin/Index.aspx頁面。如果用戶登錄學生憑證,他將其重定向到Mysite.com/Student/index.aspx頁面。

任何人都可以請指導我或建議我如何實現這個?

感謝

+0

loginUrl是登錄表單頁面的URL,而不是成功登錄後用戶重定向的頁面。所有您需要做的就是在成功驗證後,根據用戶的權限重定向到相應的頁面。 – elolos

+0

@elolos:你能否詳細說明一些例子?謝謝 – fais

回答

2

按@elolos評論,所有你需要做的是重定向到您在登錄後,加以正確的頁面。

例如

public ActionResult Login(LoginModel model){ 
    if (!(ModelState.IsValid) || !(Membership.ValidateUser(model.username, model.password))){ 
    // handle error 
    } 

    .. set session variables, cookies ,etc .. 

    if (User.IsInRole("Admin")){ 
     return Redirect(Url.Action("Index","Admin")) 
    } 
    if (User.IsInRole("Student")){ 
     return Redirect(Url.Action("Index","Student")) 
    } 

    ... and so on ... 
} 
+0

抱歉如果我忘記提及它是一個ASP.NET Webform應用程序而不是MVC Web應用程序。 – fais

+0

啊,從來沒有做過webforms ..對不起...我知道表單auth模型在兩個系統之間是很常見的,所以你寫的代碼應該是類似的。 – CtrlDot

+0

就像@CtrlDot所說的,你必須添加在代碼後面的代碼應該是非常相似的(例如Response.Redirect()而不是Redirect()),並且必須執行授權並檢查用戶的角色。您可以嘗試編寫一些代碼,如果您遇到問題,可以更新您的問題以包含有關它的信息。 – elolos