Windows Identity Foundation (WIF) Security Token Service (STS)を使用してアプリケーションの認証を処理していますが、これは問題なく動作しています。ただし、STS で長時間ログインを取得できないようです。
私の理解では、アプリケーション レベルでクライアント トークンを気にする必要はありません。クライアント トークンは期限切れになる可能性があり、STS にリダイレクトされ、STS にログインしている限り、アプリケーションを更新する必要があるためです。トークン。それでも、サインインしたままにしたくないようです。
STS の login.aspx で発生することは次のとおりです。
var cookie = FormsAuthentication.GetAuthCookie(userName, persistTicket);
if (persistTicket)
cookie.Expires = DateTime.Now.AddDays(14);
Response.Cookies.Add(cookie);
var returnUrl = Request.QueryString["ReturnUrl"];
Response.Redirect(returnUrl ?? "default.aspx");
これは、通常の Forms Auth を使用して既存のアプリケーションからほぼ直接取得されたものです。
私のweb.configから
<authentication mode="Forms">
<forms loginUrl="Login.aspx" protection="All" timeout="2880"
name=".STS" path="/" requireSSL="false" slidingExpiration="true"
defaultUrl="default.aspx" cookieless="UseDeviceProfile"
enableCrossAppRedirects="false" />
</authentication>
サインイン後に Cookie を見ると、Cookie の有効期限が 14 日間に設定されており、Cookie がセッション Cookieではないことがわかります。
STS に再度ログインする必要がある場合、元の Cookie がまだ残っていることがわかります。
STS が Cookie に埋め込んでいるタイム スタンプ機能のようなものはありますか? 私の知る限り、それはまだ有効であるはずですが、それが私の Cookie を無効にしていますか?