小编tmg*_*tmg的帖子

ASP.Net核心SignInManager lockoutOnFailure

ASP.Net Core具有处理用户身份验证的SignInManager.其中一种方法是PasswordSignInAsync(string username, string password, bool isPersistent, bool lockoutOnFailure).将lockoutOnFailure设置为true应该在一定次数的登录尝试失败后暂时锁定用户.

查看数据库中的AspNetUsers表,我看到以下内容:

  • 每次失败访问时AccessFailedCount增加1,当它达到5时,它会翻转为0.
  • 滚动到0时LockoutTimeEnd设置为未来5分钟.
  • 但是,即使在翻转后,LockoutEnabled仍然为0,用户可以继续尝试登录.

看起来预期的功能是允许5次登录尝试,然后将帐户锁定5分钟.

所以我的问题是:

  1. 如何设置允许的失败登录次数?
  2. 如何设置锁定期?
  3. 锁定为什么不触发?

asp.net-identity-3 asp.net-core

7
推荐指数
1
解决办法
3521
查看次数

关于名为属性的MVC控制器有什么特别之处吗?

在尝试解决这个问题多年之后,考虑路由冲突等等 - 我从一开始就开始了一个单独的项目.

当您尝试访问根站点(http://site/properties)时,看起来名为"属性"的MVC控制器始终返回403.14禁止消息- 但是,其他页面工作(http://site/properties/index).

它作为区域中的控制器工作正常,但是,我无法在主站点中创建它.

我想知道是否有人知道为什么以及最好的方法是什么?

c# asp.net-mvc controller asp.net-mvc-routing asp.net-mvc-5

6
推荐指数
1
解决办法
158
查看次数

Bootstrap - 在右侧放置进度条值

我想让 Bootstrap 进度条值位于右侧的进度条之外。

我不认为这是可能的,但现在我看到的唯一选择是将进度类设置为 100% 的宽度减去值文本的宽度。

处理这个问题的最佳方法是什么?

我的进度条

css twitter-bootstrap progress-bar

6
推荐指数
1
解决办法
6893
查看次数

使用哈希字符串支持创建自定义锚标记助手

我正在尝试为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.

c# asp.net-core-mvc tag-helpers asp.net-core

5
推荐指数
1
解决办法
778
查看次数

使用Antiforgery与Ajax或AngularJs

我安装了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)

但不知道如何将密钥放入视图中.

c# asp.net-core

4
推荐指数
1
解决办法
813
查看次数

如何在PasswordSignInAsync之前检查AspNetUser是否满足条件?

我使用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

3
推荐指数
1
解决办法
764
查看次数

防止直接从请求执行错误页面操作

在 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/500www.example.com/error/400

在这些情况下,再次调用上述操作(来自 MVC 而不是 StatusCodePages 中间件)并且客户端获得 500 和 400 响应。在我看来,所有~/error/{int}请求都必须返回 404 状态代码。

当客户端发出~/error/{int}请求以防止MVC中间件调用错误操作时,是否有任何解决方案?

error-handling asp.net-core

3
推荐指数
1
解决办法
736
查看次数

Twitter Bootstrap:全宽div的列重新排序

它看起来像一个简单的任务,但无法使其正常工作.我需要为平板电脑重新订购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)

http://getbootstrap.com/css/#grid-column-ordering

html css twitter-bootstrap twitter-bootstrap-3

2
推荐指数
1
解决办法
2144
查看次数

bootstrap 3.1.1轮播控件不起作用

我正在使用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

2
推荐指数
1
解决办法
3899
查看次数