2

ASP.NET MVC 3 アプリケーションで Azure の Access Control Service を使用しています。正常にログインでき、必要なすべての請求データを読み取ることができます。1 つのことを除いて、すべて正常に動作します。しばらくすると (1 時間以内)、認証 Cookie の有効期限が切れたように見えます (少なくとも、要求の Cookie コレクションには表示されなくなります)。

私はまだ SSL なしで開発エミュレーションを使用しています (認証サービス自体を除く)。

次のアクション フィルターを使用して、一部のコントローラーへのアクセスを制限しています。

public class PersonLoginFilter : ActionFilterAttribute, IActionFilter
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);

        // Check whether the user is logged in
        if (filterContext.HttpContext.Request.IsAuthenticated)
        {
             // ...
        }
    }
}

有効期限を延長するにはどうすればよいですか? または、アクション フィルターで Cookie を手動で更新するのが適切でしょうか?

前もって感謝します!

4

1 に答える 1

2

ACS が生成するトークンにも有効期限があります (管理ポータルで設定でき、最大で約 24 時間) が、web.config で値を設定することもできます。

<securityTokenHandlers> 
<add type="Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler..."> 
<sessionTokenRequirement lifetime="0:02" /> 
</add> 
</securityTokenHandlers>

ASP.NET は、2 つの最小値を取ります。

詳細については、次のブログ投稿をお勧めします

あなたの質問に明示的に答えるわけではありませんが、Sliding Session Security Token の議論で有効期限に関する概念をカバーしています。

于 2012-01-08T23:50:51.290 に答える