0

私はmvcフレームワークでフォーム認証を行おうとしていますが、ログインしてURLをコピーし、ページからログアウトして他のブラウザーまたはタブで開くと、ログインページに移動する必要がありますが、最初に認証する必要があるページにリダイレクトされます。認証なしのログインページ内。

これが私のWeb設定の設定です:

 <!--Using forms authentication-->
        <location path="Content">
            <system.web>
                <authorization>
                    <allow users="*" />
                </authorization>
            </system.web>
        </location>

        <!-- allow any user to see the login controller -->
        <location path="~/Developer/Index">
            <system.web>
                <authorization>
                    <allow users="*" />
                </authorization>
            </system.web>
        </location>

               <authentication mode="Forms">
                <forms name=".ASPXFORMSAUTH" loginUrl="~/Developer/Index" timeout="2880" />
            </authentication>

And in my controller login Action method i used 



     [HttpPost]
        public ActionResult LoginAPI(LoginAPIFormModel loginapp)
        {
            if (!ModelState.IsValidField("username") || !ModelState.IsValidField("pwd"))
            {
                if (!ModelState.IsValidField("username"))
                {
                    ModelState.AddModelError("username", "Invalid Email");
                }
                else
                {
                    ModelState.AddModelError("Incomplete", "Please fill out each field");
                }


                return View(loginapp);
            }

            try
            {

                var context = new ndCorp_SiteEntities();
                var Hashpwd = CreateHash(loginapp.pwd);
                var res = context.DevUserInfoes.Where(i => i.UserName == loginapp.username && i.USerPwd == Hashpwd).FirstOrDefault() ;
 TempData["mode"] = "LoginAPI";

                FormsAuthentication.SetAuthCookie(loginapp.username, false);
                return RedirectToAction("SuccessView");
 }

            catch (Exception ex)
            {
                Console.Write(ex);
                return View(loginapp);
            }


        }

ログイン後に実際にユーザーページにリダイレクトするJavaScriptコードは次のとおりです。

 if (@Html.Raw(Json.Encode(TempData["mode"])) == "LoginAPI")
       {
            parent.closeFancybox(); 
            //setTimeout(parent.closeFancybox(), 1000) 
            //window.top.closeFancybox();
             var url = '@Html.Raw(Url.Action("ManageApps", "Developer", new { username =@Html.Raw(Json.Encode(TempData["uname"]))} ))';
             url =  url.replace(/%22/g,'');
            parent.location.href = url;
        }
4

1 に答える 1