2014-02-27 2 views
0

다른 수준의 사용자가있는 ASP.NET 웹 폼 응용 프로그램을 만듭니다. FormsAuthentication에 대해 읽었고 구현하고 있다면 web.config 파일에 loginUrl을 제공해야합니다. 성공적인 인증 후에 모든 사람이 동일한 loginUrl로 리디렉션됩니다.FormAuthentication 다른 로그인 페이지로 리디렉션 C#

하지만 내 사이트의 사용자는 다른 자격 증명이 있습니다. 따라서 관리자 자격증 명을 가진 사용자가 로그인하면 시스템을 Mysite.com/Admin/Index.aspx 페이지로 리디렉션합니다. 사용자가 학생 자격증 명으로 로그인하면 Mysite.com/Student/index.aspx 페이지로 리디렉션됩니다.

누구든지 나를 안내하거나 구현 방법을 제안 할 수 있습니까?

감사

@elolos 주석 사항에 따라
+0

loginUrl은 로그인 양식 페이지에 대한 URL입니다. 사용자가 성공 적으로 로그인 한 후에 리디렉션되는 페이지가 아닙니다. 인증을 완료 한 후 사용자의 권한에 따라 적절한 페이지로 리디렉션하면됩니다. – elolos

+0

@elolos : 좀 더 자세히 설명해 주시겠습니까? 감사합니다. – fais

답변

2

, 당신이 할 일은 당신이 그들을 로그인 한 후 올바른 페이지로 리디렉션합니다.

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 웹 폼 응용 프로그램이 아니라 MVC 웹 응용 프로그램이라고 언급하는 것을 잊어 버리면. – fais

+0

아, 절대 webforms .. 죄송합니다 ... 내가 양식 인증 모델은 두 시스템 사이에 공통점을 알고 있으므로 작성해야 할 코드는 비슷해야합니다. – CtrlDot

+0

@CtrlDot과 마찬가지로 코드 숨김 파일에 추가해야하는 코드는 Redirect() 대신 Response.Redirect()와 매우 유사해야하며 인증을 수행하고 사용자의 역할을 확인해야합니다. 일부 코드 작성을 시도 할 수 있으며 문제가 발생하면 질문을 업데이트하여 정보를 포함 할 수 있습니다. – elolos

0

이 도움이 될 수 있습니다 예를 들어

https://social.technet.microsoft.com/wiki/contents/articles/19740.forms-authentication-with-multiple-login-pages.aspx

하지만 로그인 페이지가 다르면 리디렉션 URL을 확인하거나 redirec가 없는지 확인해야합니다. t URL 올바른 로그인 페이지를 표시하기 위해 수취인 URL을 확인해야합니다. 그렇지 않으면 세션 시간 초과 때문에 잘못된 로그인 페이지가 표시되어 앱이 종료됩니다.

관련 문제