2013-01-18 3 views
0

mvc 프레임 워크를 사용하여 폼 인증을 시도하고 있지만 로그인 및 페이지에서 URL 및 로그 아웃을 복사하고 다른 브라우저 또는 탭에서 열면 로그인 페이지로 가야하지만 페이지로 리다이렉트됩니다. 먼저 인증을 받아야 함을 의미합니다. 즉, 인증 없이는 로그인 페이지에 직접 들어갑니다. . 모든 도움이 필요합니다. 여기 mvc 프레임 워크와 폼 인증

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


     } 

실제로 로그인 후 사용자 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을 복사하면 url은 인증없이 브라우저 나 탭에서 작동합니다. 내 응용 프로그램에서 logogg하지만 http : // localhost : 54971/en-us/Developer/ManageApps를 여는 경우이 URL은 작동하지 않아야합니까? username = test – user207888

답변

0

컨트롤러에 [권한 부여] 속성을 배치하십시오 또는보기.