我在我的MVC5应用程序中使用Identity 2.1.我将PasswordSignInAsync的isPersistent属性设置为true以启用"记住我":
var result = await SignInManager.PasswordSignInAsync(model.Username,
model.Password,
true,
shouldLockout: false);
Run Code Online (Sandbox Code Playgroud)
但是,如果我一夜之间保持登录状态,那么当我在早上刷新页面时,它会将我退出,我必须再次登录.在用户手动注销之前,如何防止自动注销?
它与身份使用的Cookie身份验证有关吗?我真的不了解Startup.Auth.cs中设置的CookieAuthenticationOptions.
new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator
.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user)
=> user.GenerateUserIdentityAsync(manager))
}
Run Code Online (Sandbox Code Playgroud) 我收到 System.NullReferenceException 在模型实例化时未将对象引用设置为对象的实例,但仅有时如此。我的用户有时会遇到错误,但一旦他们重新提交,就不会发生异常。我不明白为什么会发生错误。
这是我来自 ELMAH 的错误日志:
System.NullReferenceException: Object reference not set to an instance of an object.
at Plus.Controllers.Review.ReviewNoteController.Save(ReviewNoteViewModel viewModel) in C:\Users\Rhys\Documents\Development\witplus-master\Plus\Controllers\Review\ReviewNoteController.cs:line 139
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) …Run Code Online (Sandbox Code Playgroud) 我有一个MVC5应用程序,我刚刚开始做一些Ajax.我有一个带按钮的页面,当点击它时会打开一个带有来自另一个动作的表单的Bootstrap模态.但是,当提交该模式窗体时,不调用jquery不显眼的验证,并且页面重定向到空白页面上的局部视图,而不是模态对话框内部.
所以,1:我如何在模态中使用jquery验证,以及2:如何使表单不刷新页面,而是将返回的视图重新加载到模态中?3:我对Ajax.BeginForm应该如何工作感到困惑,因为我认为它不会创建页面刷新.
这是包含加载模态的按钮的页面:
@using Plus.ViewModels
@model UserViewModel
@{
ViewBag.Title = "Personal Details";
}
@using (Html.BeginForm(null, null, FormMethod.Post, new { @class = "form-horizontal" }))
{
@Html.AntiForgeryToken()
// A separate form here
<div class="form-actions">
<button class="btn btn-primary" type="submit">
<i class="fa fa-save"></i>
Save
</button> |
<a class="btn btn-primary" href="@Url.Action("ChangePassword", "Manage", new object{})" data-toggle="modal" data-target="#myModal">Change Password</a>
</div>
}
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog">
<div class="modal-content">
</div>
</div>
</div>
@section Scripts {
<script type="text/javascript">
$('#myModal').on('shown.bs.modal', function () { …Run Code Online (Sandbox Code Playgroud) 我正在使用 Datatables v 1.10.9 和 x-editable v1.5.1 我有许多行,其中一列的顺序值为整数。
最初加载表时,x-editable 会正确应用于行中的所有目标列。
<a href="#" class="Order editable editable-click" data-type="text" data-mode="inline" data-pk="1100" data-url="/Service/UpdateOrder" data-title="Update Order" data-inputclass="xeditable-number" >3</a>
Run Code Online (Sandbox Code Playgroud)
然后绘制表格并应用分页。
所以到目前为止一切都很好。当我使用 x-editable 编辑订单值时,它会正确保存到服务器端并调用成功回调。
然而,尽管我在该成功回调中再次调用数据表 draw() 或通过单击列标题手动排序,但它不会正确排序,排序与列值更新之前相同。
这是我的代码。
$(document).ready(function () {
//X-editable for order
$('.Order').editable({
error: function (response) {
alert('error');
},
success: function (data, config) {
alert('success');
table.order([1, 'asc']).draw();
},
});
var table = $('#sort1').DataTable({
stateSave: true,
filter: false,
"pageLength": 25,
"lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
"columnDefs": [
{
"type": "html",
"targets": ['no-sort'], …Run Code Online (Sandbox Code Playgroud) 我之前没有使用过.NET Routing.我有一个网址:http://myurl.com/Account/Login/?IsIPA=true.我希望能够使用以下内容点击此URL:http://myurl.com/IPA
这是我想要的唯一自定义路线.
我可以为这样的单个URL创建路由吗?
我的代码不起作用是:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute("IPA", "Account/Login/{IsIPA}", new { controller = "Account", action = "Login", IsIPA = "true" });
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
IsIPA具有路由模板的路由上的约束条目Account/Login/{IsIPA}=True必须具有字符串值或者是实现的类型System.Web.Routing.IRouteConstraint.
c# asp.net-mvc url-routing asp.net-mvc-routing asp.net-mvc-5
c# ×3
asp.net-mvc ×2
jquery ×2
ajax ×1
datatables ×1
javascript ×1
remember-me ×1
sorting ×1
url-routing ×1
x-editable ×1