나는 신원 서버를 구성 :클라이언트 쿠키에 만료 날짜를 설정하는 방법은 무엇입니까?
public void Configuration(IAppBuilder app)
{
var factory = new IdentityServerServiceFactory().UseInMemoryClients(new Client[] {
new Client()
{
ClientName = "MyClient",
ClientId = "MyClientId",
Enabled = true,
Flow = Flows.Implicit,
RedirectUris = new List<string> { "MyClientServer/callback" },
};
});
}
및 클라이언트 서버 :
public void Configuration(IAppBuilder app)
{
var cookieOptions = new CookieAuthenticationOptions();
cookieOptions.AuthenticationType = "Cookies";
app.UseCookieAuthentication(cookieOptions);
var authenticationOptions = new OpenIdConnectAuthenticationOptions() {
Authority = "https://MyIdentityServer/core",
ClientId = "MyClientId",
SignInAsAuthenticationType = "Cookies",
UseTokenLifetime = true,
RedirectUri = "MyClientServer/callback"
});
app.UseOpenIdConnectAuthentication(authenticationOptions);
}
때 "기억 나"옵션 신원 쿠키가 만료 날짜 사용자 로그인 :
idsvr.session expires 04 October ...
그러나 클라이언트 쿠키 않는 :
.AspNet.Cookies at end of session
클라이언트 쿠키에 동일한 만료 날짜를 설정하려면 어떻게해야합니까?
UPDATE :
나는 클라이언트 응용 프로그램의 만료 날짜를 설정할 수 있습니다
authenticationOptions.Provider = new CookieAuthenticationProvider()
{
OnResponseSignIn = (context) =>
{
var isPersistent = context.Properties.IsPersistent;
if (isPersistent) // Always false
{
context.CookieOptions.Expires = DateTime.UtcNow.AddDays(30);
}
}
};
을하지만 유효 기간을 설정할 때 확인할 수 없습니다. 사용자가 "Remember Me"를 선택할 때만 설정해야하지만 클라이언트 측에서 항상 IsPersistent 옵션은 false입니다.
문제는 너무 단순 보일러 프로젝트에 존재 : https://identityserver.github.io/Documentation/docsv2/overview/mvcGettingStarted.html
UPDATE2 :
나는 클라이언트 쿠키 때문에 사파리의 버그 지속 할 필요가 - https://openradar.appspot.com/14408523가
어쩌면 몇 가지 해결 방법이 존재, 따라서 Identity에서 Client로 콜백되는 만료 날짜를 전달할 수 있습니까?
갱신 3은 :
사실, 우리의 정체성 및 클라이언트 서버 app.server.local
및 id.server.local
같은 동일한 상위 도메인을 가지고있다. 어쩌면 상위 도메인 (.server.local
)에 속한 추가 쿠키를 통해 만료일을 전달할 수 있습니까? 그러나 Identity에 서술 할 수있는 부분과 클라이언트에 적용 할 수있는 부분에 대해서는 잘 모릅니다.
질문 ("** 왜 작동이 코드? **이되지 않는다") **의 문제점을 재현하기 위해 원하는 동작하는 * 특정 문제 또는 오류 최단 코드 필요한 *를 포함해야 질문 자체 **. ** 명확한 문제 성명 **이없는 질문은 다른 독자에게 유용하지 않습니다. 참조 : [최소한의 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve). –