Tag: asp.net mvc 5

MVC 5重定向到登录页面不使用OWIN

我正试着用OWIN来解决问题。 我创建了两个MVC 5项目。 一个使用Aspnet.Identity进行身份validation,另一个使用另一个空项目。 我在emptyp项目中添加了以下内容: 具有登录操作和相应视图的帐户控制器 Startup.cs和另一个部分Startup.cs public partial class Startup { public void ConfigureAuth(IAppBuilder app) { app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = “ApplicationCookie”, LoginPath = new PathString(“/Account/Login”) }); } } 我在Home控制器中使用两个项目中的[Authorize]属性修饰了About操作。 当我运行第一个项目并在登录前进入“关于”屏幕时,它会按预期重定向到登录操作。 当我为第二个项目做同样的事情时,我得到一个“HTTP错误401.0 – 未经授权”而不是重定向。 知道是什么会导致第二个这样做吗?

MVC DropDownList选中的值不起作用

我正在使用MVC 5。 我有我的ViewBag列表 ViewBag.TitleList = new SelectList((new string[] { “Mr”, “Miss”, “Ms”, “Mrs” }), contact.Title); //contact.Title has selected value. 然后我尝试将数组转换为SelectListItem ( to no avail) 在视图上它看起来像 @Html.DropDownListFor(model => model.Title, ViewBag.TitleList as SelectList, “Select”) 我也试过了 @Html.DropDownList(“Title”, ViewBag.TitleList as SelectList, “Select”) 列表已成功加载,但未Selected Value is Not selected 。 如何解决这个问题? 更新罪魁祸首是ViewBag.Title匹配我的模型。标题。 将我的模型属性重命名为其他内容并且有效。 Arrgh!

将不同的模型传递给局部视图

我试图从视图中将不同的模型传递给局部视图。 我有两个独立的控制器动作,它们和两个不同的视图模型。 但是当我从视图中调用局部视图时,它会给我错误 传递到字典中的模型项的类型为“Application.ViewModels.Model1ViewModel”,但此字典需要“Application.ViewModels.PartialViewModel”类型的模型项。 我这样称呼它: @Html.Partial(“_CreateUniFunctionPartial”) 视图中的模型调用是 @model Application.ViewModels.Model1ViewModel 和部分视图文件中的模型是 @model Application.ViewModels.PartialViewModel 我不知道如何传递局部视图,所以它不会给出这个错误。 编辑 局部视图 @model Application.ViewModels.PartialViewModel @using (Html.BeginForm(“partialview”, “ApplicationDetail”, FormMethod.Post)) { UniFunctionViewModel @Html.ValidationSummary(true) @Html.LabelFor(model => model.detail, new { @class = “control-label col-md-2” }) @Html.TextBoxFor(model => model.detail, new { @placeholder = “Further Information” }) @Html.ValidationMessageFor(model => model.detail) }

显示“504 Gateway Timeout error”的自定义错误

我正在使用ASP.net MVC-5项目,我是初学者。 截至目前,我了解MVC的基础知识,能够显示页面并发布post和获取请求。 但我遇到一个问题,我得到“504网关超时错误”,我需要实现一个function,如果客户端得到“504网关超时错误”我应该能够显示一个特定的页面,如“有问题”而不是标准错误。从下面开始是我做的。 但我还需要改变或添加什么。 有人可以在这里指导我。 我搞不清楚了。

使用另一个对象扩展ASP.NET MVC 5标识

我目前正在使用Fluent API,在其中找不到有关使用其他对象扩展Identity模型的许多资源。 在这里,我有一个名为ApplicationUser的对象: public class ApplicationUser : IdentityUser { public virtual Staff Staff { get; set; } public int StaffId { get; set; } } 我想将它映射到我当前的Staff对象: public class Staff { public int StaffId { get; set; } public string DisplayName { get; set; } public string FirstName { get; set; } public string LastName { […]

身份(在数据库创建时)错误指定密钥太长

我在这里有AspNet Identity和MySql的问题,问题是错误,它真的阻止了我,这个错误如下: 指定密钥太长,最大密钥长度为767字节 现在我按照使用MySql和Identity的教程: http://www.asp.net/mvc/tutorials/security/aspnet-identity-using-mysql-storage-with-an-entityframework-mysql-provider 我想说我有进展,因为现在至少我得到了一些在MySQL中生成的表,但是我在这个问题上堆栈,很长一段时间我都试图解决这个问题,但没有成功。 我得到的错误在这部分: public void InitializeDatabase(ApplicationDbContext context) { if (!context.Database.Exists()) { // if database did not exist before – create it context.Database.Create(); } else { // query to check if MigrationHistory table is present in the database var migrationHistoryTableExists = ((IObjectContextAdapter)context).ObjectContext.ExecuteStoreQuery( string.Format( “SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = ‘{0}’ AND […]

Identity UserManager.AddToRole抛出exception

正如标题所说,我正在使用新的C# MVC 5 Identity进行简单的调用: UserManager.AddToRole(User.Id, User.RequestedRole); 我在从ViewModel调用的ViewModel方法中执行此操作 UserManager是在我的ViewModel的Base Class中创建的,如下所示: UserManager = new UserManager(new UserStore(new TMContext())); 当我对AddToRole方法进行上述调用时,我得到了这个Inner Exception (外部的是通用的/无用的): {“A relationship from the ‘Ledger_User’ AssociationSet is in the ‘Deleted’ state. Given multiplicity constraints, a corresponding ‘Ledger_User_Source’ must also in the ‘Deleted’ state.”} 我显然没有删除任何内容,只是添加了一个角色给我的用户。 在我尝试从多个上下文中混合对象之前,我遇到了这个exception……但我在这里没有这样做…请帮助。 编辑:我已经摆脱了模型,以防它干扰并将以下代码添加到我的控制器: public ActionResult UpdateRoles(string id) { if (ModelState.IsValid) { var userManager = […]

部署到多个Azure环境(开发,测试,生产)的推荐方法是什么?

我有一个使用mvc5的C#Web应用程序。 它目前在Azure上运行,我有一个开发,测试和生产实例。 我需要做什么来确保数据库连接字符串在应用程序被推送到每个环境时自动更改? 我知道这可以通过web.config实现,因为您可以定义Web.Debug.Config等,但是我如何针对Azure上的不同工作者角色进行此操作? 我一直在互联网上寻找解决方案。 简而言之,我想对多个web.config文件使用相同的方法,但是对于Azure。 作为一些额外的背景,对于我的解决方案,我将我的存储库库分解为一个单独的项目,并且我试图从配置文件中获取连接字符串(假设domain.dll是包含它的库的名称)。 首先,当我只使用web.config但当我不得不从另一个辅助角色运行我的域DLL文件时,配置开始返回null; 因为从其他工作进程(非Web)运行时,此代码不会运行。 这似乎引入了一个有趣的问题,如果我需要在Web之外和Azure之外使用domain.dll代码怎么办? 如何仍然保持Azure和web.config提供的连接字符串优势?

如何在MVC 5中设置自定义ClaimsPrincipal?

我创建了一个自定义主体类 public class FacebookPrincipal : ClaimsPrincipal { public JObject Data { get; set; } } 我想用它。 当用户登录时,我尝试设置 var fbP = new FacebookPrincipal { Data = user.Data }; Thread.CurrentPrincipal = fbP; AuthenticationManager.User = fbP; HttpContext.User = fbP; 它在我设置之后就可以正常工作,但是当我home/index该值就会丢失 var user = HttpContext.GetOwinContext().Authentication.User; var bbbb = this.User; var cccc = ClaimsPrincipal.Current; 所有上述方法都返回一个类型为ClaimsPrincipal的Principal,并且转换为FacebookPrincipal返回null。 如何设置自定义主体?

无法加载文件或程序集System.Web.Mvc或其依赖项之一

目前正在开发asp.net mvc5(旧的mvc3项目)。 它构建得很好,但是当我启动项目但是当我运行项目时,我面临以下错误。 Could not load file or assembly ‘System.Web.Mvc’ or one of its dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) 不确定我怎么能解决这个问题,任何想法? 这是程序集加载跟踪: === Pre-bind state information === LOG: DisplayName = System.Web.Mvc (Partial) WRN: Partial binding information was supplied for an assembly: WRN: Assembly Name: System.Web.Mvc […]