窗体身份验证与mvc框架

问题描述:

我想要做mvc框架的身份验证,但如果我登录并复制网址并从页面注销并在其他浏览器或选项卡中打开它应该去登录页面,但其重定向到哪个页面需要先进行身份验证意味着直接进入登录页面而无需身份验证 。任何帮助都将被优先处理。窗体身份验证与mvc框架

这里是我的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代码登录后这实际上重定向到用户PAG:

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 [email protected](Json.Encode(TempData["uname"]))}))'; 
      url = url.replace(/%22/g,''); 
      parent.location.href = url; 
     } 
+0

尝试更具体一些,也许发布一些代码。你也可以描述你的意思是“不工作”,任何错误代码或错误信息? –

+0

我再次发布我的查询与更多的代码...我没有得到任何错误,但如果我复制URL后登录该网址在任何浏览器或选项卡没有身份验证例如。如果我从我的应用程序logogg,但它的开放http:// localhost:54971/en-us/Developer/ManageApps?username = test,则此url不起作用 – user207888

请尝试将[授权]属性控制器或查看。