Tag: asp.net mvc

尝试注销时,提供的防伪令牌适用于用户“XXXX”,但当前用户为“”

我有一个MVC 4应用程序,并在表单会话到期时遇到问题,然后用户尝试注销。 防爆。 超时设置为5分钟。 用户登录。用户10分钟不做任何事情。 用户单击LogOff链接。 用户收到错误:“提供的防伪令牌适用于用户”XXXX“,但当前用户为”“。 然后用户必须通过一些体操来解决这个问题,以便他们可以重新登录然后重新注销(注销正用于关闭当天的时间卡)。 我想我明白为什么会这样……但不知道如何解决它。 编辑:为什么我认为发生这种情况是因为最初加载页面时,会为当前登录的用户生成AntiForgery令牌。 但是当会话到期并且他们尝试导航到注销页面时,当前用户是“”而不是实际用户。 因此,存在不匹配并且呈现错误。

适用于Asp.Net MVC 5应用程序中所有模型的Models.ApplicationDbContext?

我正在创建一个Asp.Net MVC 5网站。 我需要在ApplicationUser中添加自定义字段并将其与其他模型关联(添加外键) 。 我想我应该只使用一种上下文类型。 但是,代码脚手架已生成以下ApplicationDbContext类。 我可以把我所有的public DbSet … { get; set; } public DbSet … { get; set; } 在课堂上? 还是有更好的模式? namespace MyApp.Models { // You can add profile data for the user by adding more properties to your User class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more. public class ApplicationUser : User { […]

如何将DisplayName放在ErrorMessage格式上

我有这样的事情: [DisplayName(“First Name”)] [Required(ErrorMessage=”{0} is required.”)] [StringLength(50, MinimumLength = 10, ErrorMessage=”{0}’s length should be between {2} and {1}.”)] public string Name { get; set; } 我想要以下输出: 名字是必需的。 名字的长度应在10到50之间。 它在使用ASP.NET MVC2错误摘要时工作 ,但是当我尝试手动validation它时,如下所示: ValidationContext context = new ValidationContext(myModel, null, null); List results = new List(); bool valid = Validator.TryValidateObject(myModel, context, results, true); 结果是: 名称是必需的。 姓名的长度应在10到50之间。 怎么了? 谢谢。

找不到方法:’!! 0 System.Array.Empty()’

我用VS 2015 RC和MVC模板创建了一个新的应用程序,没有修改任何代码行我有这个错误: Method not found: ‘!!0[] System.Array.Empty()’. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.MissingMethodException: Method not found: ‘!!0[] System.Array.Empty()’. Source Error: An unhandled exception was generated during […]

基于角色的安全性asp.net mvc

我很想知道在MVC中使用基于角色的安全性的最佳实践: 如何保护您的操作并使其仅可由特定角色访问?

在Visual Studio 2013中使用EF6的MySQL连接器

我试图通过C#.NET web MVC应用程序连接到MySQL。 我的问题是,当我尝试根据我的MySQL连接添加从数据库生成的ADO.NET实体数据模型时,我收到以下错误消息: 您的项目引用了最新版本的Entity Framework; 但是,无法为您的数据连接找到与此版本兼容的Entity Framework数据库提供程序。 在执行此操作之前,请退出此向导,安装兼容的提供程序并重建项目 我正在运行以下软件,升级和附件: Visual Studio 2013 MySQL Server v5.6.21 MySQL For Visual Studio v1.2.3 Connector / NET v6.9.4 NuGet包: EntityFramework v6.1.1 MySQL.Data v6.9.3 MySQL.Data.Entities v6.8.3.0 SQL.Web v6.9.3 我的web.config,entityFramework块: .. .. 我已经查看了我可以在这里找到的所有其他解决方案,通常通过谷歌,尝试了所有这些解决方案似乎没有工作或已经用于非常不同版本的Connector / NET或其他所需的程序。 谁能发现我做错了什么?

在asp.net-mvc中,如何在不降低用户体验的情况下运行昂贵的操作?

我有一个asp.net-mvc网站,我正在为我的ORM使用nhibernate。 我有一个当前的控制器操作,它执行基本的CRUD更新(从数据库中查询项目,然后更新一堆值并提交回db表)。 然后它向客户端返回一个简单的json响应,以指示成功或错误。 public ActionResult UpdateEntity(MyEntity newEntity) { var existingEntity = GetFromRepository(newEntity.Id); UpdateExistingEntity(newEntity, existingEntity); return Json(SuccessMessage); } 在某些情况下(假设提交成功并且如果我的对象中的某些字段发生了变化)我现在想要触发一些额外的操作(比如通过电子邮件发送一堆人并运行一些生成报告的代码)但我不想放慢速度降低正在进行更新的人的用户体验。 所以我担心的是,如果我这样做: public ActionResult UpdateEntity(MyEntity newEntity) { var existingEntity = GetFromRepository(newEntity.Id); bool keyFieldsHaveChanged = UpdateExistingEntity(newEntity, existingEntity); if (keyFieldsHaveChanged) { GenerateEmails(); GenerateReports(); } return Json(SuccessMessage); } 这对于某人更新的用户体验来说太慢了。 无论如何(asyngc?)有一个昂贵的操作被控制器动作触发但是没有控制器动作因此而减慢?

自定义身份validation和ASP.NET MVC

我有一个在ASP.NET 4中构建的内部Web应用程序。 我们很难使用其他团队构建的身份validationAPI。 如果该站点的用户已成功通过该站点的身份validation,我希望他们可以访问整个站点。 在ASP.NET WebForm时代,我只是习惯在会话中保留自定义User对象。 如果该对象为null,我知道用户未经过身份validation。 在MVC是否有类似但改进的方法。 如果可能的话,我不想构建自己的ASP.NET Membership模型提供程序。 这样做最简单的方法是什么?

ASP.NET MVC 4,EF5,模型中的独特属性 – 最佳实践?

ASP.NET MVC 4,EF5, Code First ,SQL Server 2012 Express 在模型中强制使用唯一值的最佳做法是什么? 我有一个具有’url’属性的places类,对于每个地方都应该是唯一的。 public class Place { [ScaffoldColumn(false)] public virtual int PlaceID { get; set; } [DisplayName(“Date Added”)] public virtual DateTime DateAdded { get; set; } [Required(ErrorMessage = “Place Name is required”)] [StringLength(100)] public virtual string Name { get; set; } public virtual string URL { get; […]

如何向ASP.NET WebAPI控制器添加自定义方法?

在ASP.NET MVC WebAPI项目中,我们默认创建了以下控制器 public class ValuesController : ApiController { // GET api/values public IEnumerable Get() { return new string[] { “value1”, “value2” }; } // GET api/values/5 public string Get(int id) { return “value”; } // POST api/values public void Post([FromBody]string value) { } // PUT api/values/5 public void Put(int id, [FromBody]string value) { } […]