サービスを呼び出しています。リクエストするたびに、ユーザーの永続的なセキュリティトークンを渡す必要があります。
これを行うために、このメソッドを基本コントローラークラスに追加しました。
protected UserData getUsr()
{
try
{
UserData usr = new UserData();
usr.SecurityToken = Session["secToken"].ToString();
MembershipUser mvcUser = Membership.GetUser(HttpContext.User.Identity.Name);
usr.Id = (int)mvcUser.ProviderUserKey;
return usr;
}
catch (Exception ex)
{
log.Debug("Could not create usr object", ex);
throw new Exception("Could not authenticate");
}
}
ここでのこの問題は、User.Identityデータがセッションデータよりも長持ちすることがあり、ユーザーがログインしていることを確認してもリクエストが失敗するという奇妙なバグが発生することです。
このトークンを保存するためのより良い方法はありますか/User.Identityオブジェクトが期限切れになるたびに期限切れになるように保存できますか?
また、HttpContextとMVCの基本的な理解の例/ドキュメントを知っている人がいれば、それは素晴らしいフィルターを承認します。