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);
    }

何が悪いのかわかりませんが、サイトはログインページにとどまります。メンバーまたは管理者としてログインすると、更新されます。管理サイトやメンバー サイトに移動しませんでした。

4

1 に答える 1

1

使用するには

RedirectFromLoginPage(
    string userName,
    bool createPersistentCookie
) 

メソッドでは、クエリ文字列に ReturnURL 変数名が必要です。仕様を参照してくださいreturn RedirectToAction("MemberSite", "Home")したがって、またはにはなりませんreturn RedirectToAction("AdminSite", "Home")。そのメソッドをコメントアウトすると、指定されたアクションにリダイレクトされます。

于 2012-05-07T08:59:06.210 に答える