Tôi đã sử dụng ASP.NET Identity 2.2.1. Sau đây là mã trong phương thức post của hành động VerifyCode.Thay đổi mặc định ASP.NET Identity Hai yếu tố nhớ Cookie hết hạn Thời gian
var result = await SignInManager.TwoFactorSignInAsync(model.Provider, model.Code, isPersistent: model.RememberMe, rememberBrowser: model.RememberBrowser);
switch (result)
{
case SignInStatus.Success:
return RedirectToAction("Dashboard","Index");
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Invalid code.");
return View(model);
}
Khi cả hai model.RememberMe và model.RememberBrowser là trình duyệt đúng sẽ nhận dạng và hai yếu tố cookie trong 2 tuần. Đây là cài đặt mặc định.
Nhưng tôi chỉ cần nhớ TFA trong 8 giờ. Làm thế nào tôi có thể làm điều đó?
Tôi đã tìm kiếm giải pháp từ 10 ngày qua nhưng tôi chưa tìm thấy giải pháp. Bất kì sự trợ giúp nào đều được đánh giá cao.
Sau đây là mã trong lớp StartUp của tôi. Nó không có hiệu lực.
public partial class Startup
{
// For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
public void ConfigureAuth(IAppBuilder app)
{
// Configure the db context, user manager and signin manager to use a single instance per request
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create);
string domainName = string.IsNullOrEmpty(Config.DomainName) ? "" : Config.DomainName;
string cookieName = "AspNet." + domainName;
// Enable the application to use a cookie to store information for the signed in user
// and to use a cookie to temporarily store information about a user logging in with a third party login provider
// Configure the sign in cookie
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
SlidingExpiration = true,
ExpireTimeSpan = TimeSpan.FromHours(9),
CookieDomain = domainName,
CookieName = cookieName,
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 = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ProgenyUser, long>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentityCallback: (manager, user) => user.GenerateUserIdentityAsync(manager),
getUserIdCallback: (id) => (id.GetUserId<long>()))
}
});
// Use a cookie to temporarily store information about a user logging in with a third party login provider
//app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
// Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process.
app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));
// Enables the application to remember the second login verification factor such as phone or email.
// Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from.
// This is similar to the RememberMe option when you log in.
app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);
// Uncomment the following lines to enable logging in with third party login providers
//app.UseMicrosoftAccountAuthentication(
// clientId: "",
// clientSecret: "");
//app.UseTwitterAuthentication(
// consumerKey: "",
// consumerSecret: "");
//app.UseFacebookAuthentication(
// appId: "",
// appSecret: "");
//app.UseGoogleAuthentication();
}
}
thể được cấu hình bên trong ApplicationUserManager trong App_Start \ IdentityConfig.cs – jp2code
http://stackoverflow.com/q/28745143/153923 – jp2code
@ jp2code Tôi chỉ cần thực hiện thử nghiệm khác và tôi được tìm thấy sau đây: Trường hợp I, Kiểm tra Nhớ thông tin đăng nhập của tôi trong quá trình xác thực tên người dùng và mật khẩu. không kiểm tra Ghi duyệt trong mã xác minh Kết quả: ExpireTimeSpan trong Startup.Auth.cs có hiệu lực thi Trường hợp II Kiểm tra Remember me trong tên truy cập và mật khẩu xác nhận Kiểm tra Ghi tôi trong việc xác minh maõ Kết quả: ExpireTimeSpan trong Startup .Auth.cs không có hiệu lực. Cả hai cookie đều nhận được ExpireTime trong 2 tuần. – nccsbim071