ASP.Net Core具有处理用户身份验证的SignInManager.其中一种方法是PasswordSignInAsync(string username, string password, bool isPersistent, bool lockoutOnFailure).将lockoutOnFailure设置为true应该在一定次数的登录尝试失败后暂时锁定用户.
查看数据库中的AspNetUsers表,我看到以下内容:
看起来预期的功能是允许5次登录尝试,然后将帐户锁定5分钟.
所以我的问题是:
在尝试解决这个问题多年之后,考虑路由冲突等等 - 我从一开始就开始了一个单独的项目.
当您尝试访问根站点(http://site/properties)时,看起来名为"属性"的MVC控制器始终返回403.14禁止消息- 但是,其他页面工作(http://site/properties/index).
它作为区域中的控制器工作正常,但是,我无法在主站点中创建它.
我想知道是否有人知道为什么以及最好的方法是什么?
我正在尝试为a支持asp-hash属性的标记创建自定义ASP.NET Core标记帮助程序.该属性应该做的只是将提供的值附加到href属性的末尾.
<a asp-controller="Home" asp-action="Index" asp-hash="mainDiv">some link</a>
然后会产生:
<a href="http://localhost/home/index#mainDiv">some link</a>
我发现的源代码AnchorTagHelper在本节asp.net GitHub库,但我无法找到一个方法来添加的东西到最后的生成href.
我安装了Microsoft.AspNetCore.Antiforgery我的asp.net核心.net框架应用程序,添加到配置服务
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddApplicationInsightsTelemetry(Configuration);
services.AddTransient<ISession, JwtSession>(s => JwtSession.Factory());
//services.AddCors();
services.AddAntiforgery(options => options.HeaderName = "X-XSRF-TOKEN");
services.AddMvc();
}
Run Code Online (Sandbox Code Playgroud)
我想在控制器中使用它并执行如下操作:
[Route("[action]"), Route("")]
[HttpGet]
public IActionResult Index()
{
var f = _antiforgery.GetAndStoreTokens(HttpContext);
return View();
}
Run Code Online (Sandbox Code Playgroud)
但不知道如何将密钥放入视图中.
我使用Microsoft提出的方法为AspNetUsers添加了一个新列:
public class ApplicationUser : IdentityUser
{
public bool AdminConfirmed { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这意味着管理员必须在注册后确认用户帐户.
登录的默认方式是:
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
_logger.LogInformation(1, "User logged in.");
return RedirectToLocal(returnUrl);
}
Run Code Online (Sandbox Code Playgroud)
但正如我所见,我没有任何可能编辑"PasswordSignInAsync"背后的代码.那么如何添加另一个条件会导致此方法返回result.IsNotAllowed如果用户的帐户未被admin确认?
我也不知道如何从数据库中获取有关用户的一些数据.我存储授权数据的DbContext如下所示:
public class AuthorizationDbContext : IdentityDbContext<ApplicationUser>
{
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
Run Code Online (Sandbox Code Playgroud)
通常我会用:
public DbSet<SomeModel> SomeData { get; set; }
Run Code Online (Sandbox Code Playgroud)
访问一些数据.但是对于VisualStudio为我生成的AspNetUsers表,我没有任何"c#类模型"可以放入DbSet.然后我如何访问用户数据以告知他的帐户是否由管理员确认?
asp.net entity-framework asp.net-identity asp.net-identity-3 asp.net-core
在 asp.net-core 中,我们可以通过向管道添加 StatusCodePages 中间件来显示用户友好的错误页面。在Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
// code ...
app.UseExceptionHandler("/error/500");
app.UseStatusCodePagesWithReExecute("/error/{0}");
// code ...
}
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,当发生未处理的异常或找不到请求的资源时,响应通过重定向到/error/{0}. 框架正确调用此操作
[Route("[controller]")]
public class ErrorController : Controller
{
[HttpGet("{statusCode}")]
public IActionResult Error(int statusCode)
{
Response.StatusCode = statusCode;
return View("Error", statusCode);
}
}
Run Code Online (Sandbox Code Playgroud)
当客户端直接请求类似~/error/{int}. 例如www.example.com/error/500或www.example.com/error/400
在这些情况下,再次调用上述操作(来自 MVC 而不是 StatusCodePages 中间件)并且客户端获得 500 和 400 响应。在我看来,所有~/error/{int}请求都必须返回 404 状态代码。
当客户端发出~/error/{int}请求以防止MVC中间件调用错误操作时,是否有任何解决方案?
它看起来像一个简单的任务,但无法使其正常工作.我需要为平板电脑重新订购div,这是100%的宽度.请看下面的小提琴,看看我的意思.
原始参考:
<div class="row">
<div class="col-md-9 col-md-push-3">.col-md-9 .col-md-push-3</div>
<div class="col-md-3 col-md-pull-9">.col-md-3 .col-md-pull-9</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我正在使用Bootstrap构建一个网站,但我根本无法使旋转木马工作,左右和指示器都会改变幻灯片.
<div id="slideshow" class="carousel slide">
<ol class="carousel-indicators">
<li data-target="#slide0" data-slide-to="0" class="active"></li>
<li data-target="#slide1" data-slide-to="1"></li>
</ol>
<div class="carousel-inner" role="listbox">
<!-- 1st slide -->
<div class="item active" id="slide0">
<div id="mainFeature">
<div class="col-lg-6 col-lg-offset-1 col-md-6" >
<img class="screenshot">
</div>
<div class="col-lg-4 alta">
<h2>heading</h2>
<p class="lefted">some text</p>
<p class="lefted">other text</p>
</div>
</div>
</div>
<!-- second slide -->
<div class="item" id="slide1">
<div id="mainFeature">
<div class="col-lg-6 col-lg-offset-1 col-md-6" >
<img class="screenshot">
</div>
<div class="col-lg-4 alta">
<h2>heading</h2>
<p class="lefted">some text</p>
<p class="lefted">other text</p>
</div>
</div>
</div>
</div> …Run Code Online (Sandbox Code Playgroud) html javascript carousel twitter-bootstrap twitter-bootstrap-3
asp.net-core ×5
c# ×3
css ×2
html ×2
asp.net ×1
asp.net-mvc ×1
carousel ×1
controller ×1
javascript ×1
progress-bar ×1
tag-helpers ×1