2011-08-10 3 views
1

MVC3でフォーム認証を使用しています。 returnUrlは何らかの理由でURLの一部を複製しているようです。たとえば:MVC3 Auth returnURL

http://localhost/customer/?filter=1&sort=3

は次のようになります?

にreturnurl =/localhostの/顧客/フィルタ= = 3 &フィルタ1つの&ソート= 1つの&ソート= 3

あなたが見ることができるように何らかの理由で追加パラメータが重複しています。誰でも修正を知っていますか?

答えて

0

returnUrlがシステムを通過するのを見ておく価値があります。ある時点で、何かが最後に2番目のパラメータセットを追加しています。現在のURLの末尾にこれらのパラメータが追加されている可能性があります。現在のURLにはすでに?returnUrl=パラメータが設定されていますか?この場合、returnUrlがコード化されていることを確認する価値があります。例えばを貼り付けてください。それはあなたが次のことをしなければならない作業を取得するために

0

  1. が、これは、ユーザが

In order to subscribe for the event you have to < a style=" background-color:Black; color:White; font-weight:bold;" href="@Url.Content("~/Account/Login?returnUrl=/Events/Index")">Login< /a> or create a New Account.

  1. 公衆にログインする必要があり、イベントページであることを想像してみてActionResultログイン(LogOnModelモデル、文字列returnUrl) { if(ModelState.IsValid) { if(Membership.ValidateUser(model.UserName、model.Password)) { MembershipUser user = Membership.GetUser(model.UserName);

    FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); 
    
        if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") 
        && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) 
        { 
           return Redirect(returnUrl); 
        } 
        else 
        { 
        return RedirectToAction("Index", "Account"); 
        } 
         } 
         else 
         { 
          ModelState.AddModelError("", "The user name or password provided is incorrect."); 
         } 
        } 
    
        return View(model); 
    

    }