2016-08-10 2 views
1

は、私は、現在のユーザーのユーザー名を変更する機能を持っている私のサイトでIsPersistentパラメータ現在のセッションが永続的かどうかを確認する方法はありますか?私は、ユーザーのログオンをしていた場合

SignInManager.SignIn(user, isPersistent, false); 

を設定する必要があります。 UserNameが変更された場合、現在のココイが実際に作成されないので、LogOutユーザーとログインする必要がありますが、ユーザーが私をremmemberでチェックするかどうかはわかりません。 私のサイトで私はセッションisPersistentかどうか知ることができますか? また、他の方法もありますが、コインには対応していません。

UPDATE:

が、私は現在のユーザーを追跡するために私のベースコントローラで

_user = db.Users.FirstOrDefault(x => x.UserName == User.Identity.Name); 

を使用しています。 Asp.Net IdentityにはUser.Identity.Nameという属性がありますが、User.Identity.Idではなく、この名前はcoockiesのどこかに格納されています。名前ではなくidsを追跡するシステムを変更する方法はありますか?

答えて

0

すべてのユーザーには、ある種のユーザーIDが必要です。ユーザーをデータベースに保管している場合は、すでにユーザーがいます。必要に応じて、作成されたカスタム作成IDをすべてのユーザーに追加することもできます。

次に、そのユーザーIDを使用して、ユーザーをCookieに関連付けることができます。このIDはユーザー固有のもので、ユーザー名が変更されても変更されません。この方法を使用すると、問題が完全に回避されます。

更新

あなたは、このようなアイデンティティからユーザIDを取得することができます:私はあなたがそれをさらにあなたを助けるために、クッキーを作成しているかを確認する必要があります

using Microsoft.AspNet.Identity;  

int userId = User.Identity.GetUserId(); 

+0

私はポストを更新しました。 Asp.Net IDは名前自体を追跡します。私はidsを追跡するシステムが欲しいが、私は方法を知らない。 –

+0

難しい選択答えとしてマークを作るために何を答えますか? Gaurav Pの回答はまず問題を解決するのに役立ちますが、あなたの答えはより複雑ですので、私はそれをマークします。ありがとう。 –

関連する問題