2014-04-07 3 views
6

OWIN을 사용하기 위해 생성 된 시작 구성을 사용하는 ASP.NET MVC5 응용 프로그램이 있습니다.OWIN이 다음 날 인증 쿠키를 거부합니다.

사용자가 내 응용 프로그램에 로그인하고 브라우저를 열어 두지 만 다음 날에 액세스하려고하면 응용 프로그램이 사용자를 로그인 페이지로 리디렉션합니다.

개발자 컴퓨터에서이 문제를 재현 할 수 없으며 현재 공유 호스팅 공급자에서만 발생합니다. 실제로 이전 공급자에게 제대로 작동했습니다.

응용 프로그램 풀이 한 번만 다시 시작되지만 내 경험에 따르면 수동으로 재활용하면 토큰이 무효화되지 않습니다 (내가 아는 한 예상되는 동작이어야 함).

내가 명시 적으로 만료 슬라이딩 및 쿠키 유효성을 증가 설정을 시도했지만 아무 효과도 없었다 :

// Enable the application to use a cookie to store information for the signed in user 
app.UseCookieAuthentication(new CookieAuthenticationOptions 
{ 
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
    ExpireTimeSpan = TimeSpan.FromDays(365*20), 
    SlidingExpiration = true, 
    LoginPath = new PathString("/Account/Login") 
}); 
// Use a cookie to temporarily store information about a user logging in with a third party login provider 
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); 

것은 내가 .NET 프레임 워크 4.5을 사용하고 있습니다. 모든 NuGet 패키지를 최신 버전으로 업데이트하려고했지만 문제가 해결되지 않았습니다.

전송 된 쿠키의 유효 기간 및 유효 기간이 문제가되지 않아야합니다. 그것은 다양한 브라우저에서 발생합니다.

+0

귀하의 제공 업체가 귀하의 앱이 설치된 OS를 동적으로 변경합니까? 그렇다면 기계 키가 변경되어 티켓이 유효하지 않게됩니다. web.config에 컴퓨터 키를 설정하고 그런 경우 다시 시도하십시오. – tugberk

+0

내 호스팅 제공 업체는 항상 동일한 컴퓨터가 내 응용 프로그램을 제공 할 것이라고 말합니다. 나는 http://msdn.microsoft.com/en-us/library/ff649308.aspx](http://msdn.microsoft.com/en-us/library/ff649308.aspx)에 기초한 미리 정의 된 machinekey를 설정하려고 시도했다. , 나는 며칠 안에 그것을 시험 할 것이고 그것이 OK인지 확인 할 것이다. 답변 해 주셔서 감사합니다. – nzsb

답변

8

쿠키가 ASP.NET의 <machineKey>으로 보호되어 있기 때문입니다. 귀하의 제공 업체가 앱 도메인 재활용을 시작하기 위해 무언가를하고 있거나 웹 팜에있어 머신 키가 일치하지 않는 것 같습니다. web.config에 <machineKey>을 설정하십시오.