Windows Identity Foundationセキュリティトークンサービスはログインし続けることができません

StackOverflow https://stackoverflow.com/questions/3585856

質問

Windows Identity Foundationを使用しています (wif) セキュリティトークンサービス (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");

これは、通常のフォーム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>

サインインした後、クッキーを見ると、クッキーの期限切れが将来14日間設定されていることがわかります。 いいえ セッションクッキー。

STSに戻ってログインする必要があるとき、元のCookieがまだそこにあることがわかります。

STSがCookieに埋め込まれているタイムスタンプ機能はありますが、私のCookieを無効にしている限り、それはまだ有効であるはずですか?

役に立ちましたか?

解決

@Uoselからの提案を読んだ後、これにより、ここで何が起こっているのかについて、より深い分析を行う道を進んでいます。一方、私の目標は、STS自体のみであり、STS消費サイトでは保存クッキーを作成することです。このようにして、STS消費サイトの有効期限で、STSレベルでユーザーをいつでも検証できます。

この一連の思考におけるより多くの運動があったので、STSスターターサイトはフォームAUTHを使用して、index.aspxで発生する実際のWIF認証を確保することがわかりました。問題は、既存のフォームAuthチケットを使用して、Forms Auth Secured Indexページへの転送を処理するロジックがなかったということでした。

これにより、に似た解決策に至ります

if(User.Identity.IsAuthenticated)
{    
    if(IsValidUserCredentials())
    {
       var returnUrl = Request.QueryString["ReturnUrl"];
       Response.Redirect(returnUrl ?? "default.aspx");
    }    
}
else
{
    DisplayLoginForm()
}

他のヒント

パッシブリダイレクトを使用している場合、あなたは持っていますか PersistentCookiesOnpassiveredirects trueに設定しますか?

<wsFederation passiveRedirectEnabled="true"
    persistentCookiesOnPassiveRedirects="true" />
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top