2012-05-07 8 views
0

管理者であれば、管理サイトにリダイレクトされます。あなたがメンバーの場合は、メンバーサイトにリダイレクトされます。ここで管理者が管理サイトにリダイレクトされ、ユーザーがユーザーサイトに転送されます

は、コントローラ上の私のコードです:

public ActionResult Index(Login model) 
    { 
     if (ModelState.IsValid) 
     { 
      if (model.IsUserExist(model.EmailId, model.Password)) 
      { 

       if (Roles.IsUserInRole("Admin")) 
       { 
        ViewBag.UserName = model.EmailId; 
        FormsAuthentication.RedirectFromLoginPage(model.EmailId, false); 

        return RedirectToAction("AdminSite", "Home"); 
       } 
       if (Roles.IsUserInRole("Member")) 
       { 
        ViewBag.UserName = model.EmailId; 
        FormsAuthentication.RedirectFromLoginPage(model.EmailId, false); 
        return RedirectToAction("MemberSite", "MobileHome"); 
       } 
      } 
      else 
      { 
       ModelState.AddModelError("", "Wrong Email or Password!"); 
      } 
     } 

     return View(model); 
    } 

私が間違っているかわからないが、サイトだけのログインページにとどまります。メンバーや管理者としてログインすると更新されます。それは私を管理サイトまたはメンバーサイトに連れて行っていませんでした。

+0

申し訳ありません、モバイルサイトのメンバーになる必要があります。管理者は管理サイトにアクセスします。 adminsサイトはデスクトップ向けのもので、メンバーはモバイル向けです。 – newb

答えて

1

あなたは、クエリ文字列ににreturnurl変数名を持っている必要が

RedirectFromLoginPage(
    string userName, 
    bool createPersistentCookie 
) 

メソッドを使用します。 specyficationを参照してください。したがって、return RedirectToAction("MemberSite", "Home")またはreturn RedirectToAction("AdminSite", "Home")には達しません。このメソッドをコメントアウトすると、指定されたアクションにリダイレクトされます。

関連する問題