2011-04-18 3 views
2

나는 내가 브라우저를 닫고 다시 사이트에 올 때 쿠키 그러나 브라우저에서 설정하기를 참조FormsAuthentication.SetAuthCookie 문제

[HttpPost] 
public ActionResult SignIn(LogonModel logonModel) 
{ 
    string logonMessage; 
    if(_authenticationService.Login(logonModel.UserName, logonModel.Password, 
     out logonMessage)) 
    { 
     FormsAuthentication.SetAuthCookie(logonModel.UserName,true); 

     return RedirectToAction("Index", "Home"); 
    } 

    return View(); 
} 

아주 기본적인 컨트롤러를 가지고, 그것을하지 않습니다 나를 자동으로 로그인 해. 쿠키가 처리되지 않는 것과 거의 비슷합니다.

답변

4

가장 중요한 질문은 다음과 같습니다. 쿠키는 입니다. 브라우저에 있습니까? 당신이 제한 시간을 지정하지 않은 경우

<authentication mode="Forms"> 
    <forms loginUrl="~/login" timeout="60" /> 
</authentication> 

는 기본값을 사용합니다 : 당신은 시간 제한을 위해 web.config의 여부, 사용자가 구성한입니다뿐만 아니라 <authentication> 섹션을 확인 할 수 무엇

30 분이 지났지 만 다른 값으로 설정했을 수 있습니까?

timeout 속성 :

쿠키가 만료 된 후 정수 분, 시간을 지정합니다.

또한 CookiesSupported property (boolean)가 반환하는 것을 확인할 수 있었다.

<authentication mode="Forms"> 
     <forms name="yourAuthCookie" loginUrl="/user/login" protection="All" path="/" enableCrossAppRedirects="true" timeout="90" domain="WRONGDOMAIN.COM" /> 
    </authentication> 

: 나는 도메인이 authenticaion 섹션에서 잘못 상황이 있었다 MVC 5+

<system.webServer> 
<modules> 
    <remove name="FormsAuthentication" /> 
</modules> 
</system.webServer> 
+0

나는 이것이 사실이라는 이유로 답변으로 표시하고 있습니다. web.config를 다시 보았습니다. 나는 그 쿠키에 대한 도메인에 오타가 있었다. 이제는 효과가있는 것처럼 보입니다. 아직 모든 브라우저를 테스트하지는 않았지만 크롬에서 작동합니다. 고마워 ... 나는 오타가 낀다. –

+0

안녕하세요, "도와 줘서"행복합니다 :) –

+0

재미 있고 재밌는 이들이 어떻게 돌아 왔는지 그리고 오늘 개발자가 얼마나 더 나은 지 깨닫게됩니다 ... 나는 오늘이 지체 된 것을 묻지 않을 것입니다. –

3

하면 Web.config의에서 다음 <modules> 태그를 제거하십시오 도메인을 제거하면 트릭을 만들었습니다.

<authentication mode="Forms"> 
     <forms name="yourAuthCookie" loginUrl="/user/login" protection="All" path="/" enableCrossAppRedirects="true" timeout="90" /> 
    </authentication> 
0

를 사용하는 경우