2016-09-23 4 views
1

OWIN 인증을 사용하여 개발 컴퓨터 (Windows 10/IIS 10)에서 제대로 작동하지만 웹 응용 프로그램을 Windows 2000 서버에 게시 할 때 ASP.NET 웹 응용 프로그램을 개발했습니다. IIS 8.5에서는 쿠키 인증이 작동하지 않습니다.OWIN 쿠키 인증이 IIS 8.5에서 작동하지 않습니다.

IsPersistent 설정을 true로 설정하여 로그인하고 브라우저를 닫을 때 브라우저를 다시 시작하면 여전히 로그온되어 있으므로 정상적으로 작동합니다. 그러나 IIS를 다시 시작하고 브라우저를 시작하면 다시 로그온해야합니다.

나는 다음과 같은 코드로,이를 테스트 할 수있는 매우 간단한 응용 프로그램을 만들었습니다

:

Startup.cs

public void ConfigureAuthentication(IAppBuilder app) 
    { 
     app.UseCookieAuthentication(new CookieAuthenticationOptions 
     { 
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
      LoginPath = new PathString("/Login"), 
      CookieName = "ThisIsTheAuthCookie" 
     }); 
    } 

AuthenticationController.cs

public ActionResult Login(string userName, string password) 
    { 
     //For testing purposes every user/pwd is fine 
     var identity = new ClaimsIdentity(new [] { new Claim(ClaimTypes.Name, userName), }, 
      DefaultAuthenticationTypes.ApplicationCookie, 
      ClaimTypes.Name, ClaimTypes.Role); 

     HttpContext.GetOwinContext().Authentication.SignIn(new AuthenticationProperties { IsPersistent = true }, identity); 

     return RedirectToAction("index", "home"); 
    } 

에도 크롬을 쿠키를 보여 주지만 IIS 8.5에서 OWIN이 사용하지 않는 것처럼 보입니다.enter image description here

누구에게 문제가 있는지 생각해보십시오. 사용자 에이전트를 유지하면서 IIS 1. 다시 시작 - :

들으, 대니

답변

0

문제가 해결되었습니다. web.config에 MachineKey 요소를 추가해야했습니다!

0

당신은 결과를 몇 가지를 시도하고 공유 할 수 있습니다. 지금 로그인했는지 확인하십시오. 2. Katana에서 로깅을 활성화하고 로그에서이 경고/오류를 확인하십시오.

+0

좋습니다, 테스트 해 결과를 알려 드리겠습니다. – dennieku

+0

브라우저를 열어 IIS를 다시 시작한 후에 다시 로그인해야했습니다. 간단한 로깅 OWIN 미들웨어를 추가했지만 오류가 발생하지 않았습니다. – dennieku

+0

사용자 지정 쿠키 관리자를 추가하여 요청 중에 쿠키가 읽히는 지 확인합니다. 로깅은 쿠키가 올바르게 읽혀 졌음을 보여 주었지만 OWIN은 쿠키를 사용하여 사용자를 인증하지 않았습니다. – dennieku

0

어떤 결과가 이미 있습니까?

내게는 세션 ID가있는 쿠키가 있지만 IIS 서버가이 세션에서 더 이상 인식하지 못하는 것 같습니다. IIS 서버에서 세션을 유지 하시겠습니까? ('진행 중'이 아님)

IIS 구성에서 세션 상태에서 옵션을 찾을 수 있습니다. TechNet Article IIS

+0

저는 이것이 세션과 관련이 없다고 생각합니다. 그것은 인증 쿠키를 유지하고 재 방문시 다시 쿠키를 읽는 것입니다. – dennieku

관련 문제