我一直在努力解决微软在One Asp.Net实现中引入的新形式身份过程 - 特别是关于Asp.NET MVC5.
我的问题有两个方面:
如何将上下文指向常规SQL实例而不是LocalDb.至少LocalDb对我来说不可行,因为我的托管服务提供商不支持它.
如何为我的身份实体使用自定义数据库.
我意识到我可以只更改Web.Config中"DefaultConnection"条目的连接字符串.但这仍然留给我一系列以"AspNet"为前缀的表格.
在旧的MembershipProvider体系结构下,您可以从提供程序继承并通过在Web.config中放置条目将条目身份验证过程指向您的自定义成员身份过程,以您想要的任何方式实现所需的一切.
但是,使用新的标识进程,web.config中没有要使用的挂钩.此外,继承它并不是什么好事,因为似乎没有任何东西是虚拟的,并且最重要的是,它继承自现有的上下文来引导.
我尝试使用我自己的上下文与实现适当的新接口的实体,但它所做的只是完全忽略我的上下文而不仅仅是,使用带有默认DefaultConnection连接字符串的localdb,忽略我自己的上下文.
由于这是一个新的微软创意,因此没有关于如何自定义新流程的真正演练,只是演示新流程的优秀程度.
我在网上看到了一个关于推出自己的身份过程并将其连接到OWIN流程的条目,但我对OWIN完全不熟悉,至少需要一些关于如何做到这一点的信息.(我最初涉足OWIN项目并没有产生任何结果)
有没有人有任何信息?
我一直有一个让我绝对疯狂的奇怪问题.
在它工作得很好之后,它开始出现以下错误:
Validation type names in unobtrusive client validation rules must be unique. The following
validation type was seen more than once: required
Run Code Online (Sandbox Code Playgroud)
此错误首先在Area/Admin/WebSites中的一个控制器上启动.但是一旦我的身份验证cookie过期,我就会在我的登录页面上以及EditFor(m => m.UserName)行中获得它.我梳理了我的代码,在任何可能被远程命名相同的模型上的任何地方查找重复的必需属性,但无济于事.
我甚至进入了我的LoginViewModel,删除了[Required] From UserName.错误移至EditFor(m => m.Password).我也从密码中删除了必需,并且错误移动了RememberMe行,但该成员上根本没有必需属性.事实上,我在其他任何类别的任何地方都没有其他名称甚至远程命名为RememberMe.
好吧,我放弃并开始从头开始重建webSite项目(不是解决方案的其余部分),但最终还是得到了同样的东西.
绝望之下,我从头开始重建整个解决方案,只复制*.cs文件并手动重新加载所有引用,认为某处存在重复引用.
一旦我再次建立MVC4项目,我就分阶段进行,看看能否知道发生了什么.它做得很好,加载,我可以登录等,直到我开始添加区域.起初我只是将Areas文件夹直接复制到项目中(所有命名空间名称都相同,所以这应该没问题).但果然我开始正确地得到这个错误.
好的,所以我开始按照我最初创建它们的相反顺序删除控制器.在我完全删除了Areas文件夹之前,该网站从未恢复正常.
测试一下,一旦我在项目中创建了一个Areas文件夹,它就会破坏.如果我使用GUI创建新区域也是如此.
好的,回到绘图板.从头开始重新创建MVC4项目,这次是在解决方案之外,并且只提供了对我的解决方案至关重要的2个关键NuGet包:Ninject.MVC3和Mvc3ControlsKit(来自nuget的一个用于3和4).好的,一切都终于开始了.此时,我的Jquery是版本1.7.2,带有MVC4附带的默认Jquery UI.
在某些时候,我遇到了jquery对话框未关闭的问题所以我从NuGet安装了JQuery 1.8.2和最新的JQuery UI.一切正常,直到我在管理区域添加一个完全空白的控制器,然后再次弹出此错误.
好的,再次回到绘图板......我分阶段重建它,在每个点进行测试.这次没有安装最新的JQuery好东西.一切都恢复正常.添加了一个新控制器,然后是两个.好的,制作了这个版本的有效副本并将其放在一边.将Jquery和Jquery UI更新到最新版本.在该区域添加一个新的控制器,它仍然继续完全沮丧.
我的实体都使用Fluent API配置我的实体,根本没有DataAnnotatian属性.有任何想法吗?我一直在等待它再次破裂.
编辑:
以下是我刚才想到的更多信息.我的LogIn Partial View中的这行代码出现错误.我的模特是
public class LoginViewModel
{
[Required]
[Display(Name = "User Name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember …Run Code Online (Sandbox Code Playgroud) 当我发布使用ASP.NET核心Web应用程序(.NET Framework)模板构建的.net46 MVC项目时,我得到了HSC500错误.查看流日志时,我可以看到以下消息:
我的project.json文件如下:
{
"dependencies": {
"AutoMapper": "5.0.2",
"AutoMapper.EF6": "0.5.0",
"BlueStar.Core": "1.0.0-*",
"BlueStar.Data": "1.0.0-*",
"BlueStar.Data.EntityFramework": "1.0.0-*",
"BlueStar.Domain": "1.0.0-*",
"EntityFramework": "6.1.3",
"EntityFramework.Extended": "6.1.0.168",
"Microsoft.ApplicationInsights.AspNetCore": "1.0.0",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0"
},
"tools": {
"BundlerMinifier.Core": "2.0.238",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"net461": { }
},
"buildOptions": { …Run Code Online (Sandbox Code Playgroud)