public void ConfigureServices(IServiceCollection services)
{
// 添加身份验证服务
services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddCookie(options =>
{
options.Cookie.Name = "AuthCookie";
options.LoginPath = "/Account/Login";
options.AccessDeniedPath = "/Account/AccessDenied";
options.ExpireTimeSpan = TimeSpan.FromDays(30);
options.SlidingExpiration = true;
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 启用身份验证中间件
app.UseAuthentication();
}
public class UserController : Controller
{
private readonly UserManager _userManager;
private readonly SignInManager _signInManager;
public UserController(UserManager userManager, SignInManager signInManager)
{
_userManager = userManager;
_signInManager = signInManager;
}
public async Task GetDevices()
{
var user = await _userManager.GetUserAsync(User);
var logins = await _signInManager.GetExternalAuthenticationSchemesAsync();
var devices = new List();
foreach (var login in logins)
{
var info = await _signInManager.GetExternalLoginInfoAsync(login.Name);
if (info != null && info.Principal.HasClaim(x => x.Type.EndsWith("sid")))
{
devices.Add(info.ProviderDisplayName);
}
}
return View(devices);
}
}
@model IEnumerable
用户设备信息:
@if (Model.Any())
{
@foreach (var device in Model)
{
- @device
}
}
else
{
没有任何设备登录过该账户