、あなたは、特許請求の範囲としてこれらを保存したり、それらを格納するために、独自のテーブルを作成する必要がありますどちらか。クレームはアイデンティティによって既に作成されているので、それは最も簡単です。
OnValidateIdentity
の方法でCookieAuthenticationProvider
をStartup.Auth.cs
に入力して検証します。現在、SecurityStampValidator
のOnValidateIdentity
メソッドが呼び出されているため、セッションIDを最初にチェックして元のセキュリティスタンプバリデーターを呼び出すラッパーメソッドを記述する必要があります。たとえば、あなたはStartup
クラスにこれらのメソッドを追加することができます。_validate
だけのオリジナルの方法とvalidate
ある
private Func<CookieValidateIdentityContext, System.Threading.Tasks.Task> _validate=SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager));
private async Task validate(CookieValidateIdentityContext context)
{
var usermanager = context.OwinContext.GetUserManager<ApplicationUserManager>();
var claims = await usermanager.GetClaimsAsync(context.Identity.GetUserId());
//instead of setting to true, add your session validation logic here
bool sessionIsValid=true;
if (!sessionIsValid) {
context.RejectIdentity();
context.OwinContext.Authentication.SignOut(context.Options.AuthenticationType);
}
await _validate(context);
}
もセッションIDをチェックし、あなたの新しい方法です。私はあなたがデータベースからのクレームを毎回チェックする必要があると思うが、私はusermanager.GetClaimsAsync
が最終的にこれを行うだろうと信じて、この作業を行うには
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = validate
}
});
:次に、あなたのapp.UseCookieAuthentication
コードは、このような新しいvalidate
方法を参照します。
わかりません。これが役立ちます。 MVCプロジェクトを作成するときは、認証メソッドを設定するオプションがあります。サンプルコードを生成するはずです。私はあなたのユーザーのトラックを維持する状況に対して許容できるアプローチでなければなりません。 – Dragonvil
ASP.NET IDを使用する私はapp.UseCookieAuthenticationを使用します(新しいCookieAuthenticationOptions {.... このオプションを使用してセッションIDを検証するにはどうすればよいですか? – spiros
前回の回答で何か言及しておいたはずのこと: 'SecurityStampValidator'は、auth cookieをこの値と照らし合わせてチェックし、変更された場合にサインアウトします – Matthew