我有一个ASP.NET MVC 4项目使用Web API。 在控制器上,我使用[Authorize]属性将类设置为需要授权。 对于身份validation我正在使用ASP.NET成员资格提供程序,并将我的Web.Config设置为使用“窗体”身份validation。 这里是我卡住的地方: 一切工作都很好,直到我完成了testingAPI,我想用[Authorize]属性来保护控制器,这样我就可以开始在我的Membership Provider中对用户进行身份validation了。 因此,我激发了提琴手,并进行相同的调用,添加Authorization:Basic属性以及来自我的成员资格提供者的用户名:password,如下所示: 我得到的答复是401未经授权,并在“身份validation”下,我得到“没有WWW身份validation标题存在”。 然后我意识到API正在寻找一个SHA1编码密钥。 因此,我从search引擎中启动了一个SHA1生成器,并为我的用户名:密码获取一个散列值,并更新我的请求头,如下所示: 这也不起作用,我得到相同的结果。 此外,我显然需要某种“共享密钥”与服务器一起使用来解码我的用户名/密码。 所以我的问题: 我如何从服务器获得这个密钥(或者在这种情况下,运行VS 2012的虚拟IIS)。 如何使用这个在Fiddler中使用来自ASP.NET成员资格提供程序的用户名/密码进行身份validation的调用。 我将如何在我的客户端应用程序中使用它来进行相同的调用(C#WPF应用程序)。 当我的HTTP调用与SSL结合时,这是否最好? 如果不是什么? 提前致谢!
我以前的问题让我再次想到层,存储库,dependency injection和像这样的架构。 我的架构现在看起来像这样: 我首先使用EF代码,所以我只是创build了POCO类和上下文。 这创build了数据库和模型。 级别更高的是业务层类(提供者)。 我为每个域使用不同的提供程序…像MemberProvider,RoleProvider,TaskProvider等,我在这些提供程序中的每个提供了我的DbContext的新实例。 然后我在我的控制器中实例化这些提供程序,获取数据并将它们发送到Views。 我最初的架构包括仓库,我摆脱了,因为我被告知这只是增加了复杂性,所以为什么我不只是使用EF。 我想这样做..直接从控制器使用EF,但是我必须编写testing,这与真实的数据库有点复杂。 我不得不假冒 – 莫名其妙的数据。 所以我为每个提供者做了一个接口,并用列表中的硬编码数据做了伪造的提供者。 这样我就回到了一些东西,我不知道如何正确地进行。 这些事情开始太复杂了……许多方法和“pat”“……它创造了太多的噪音和无用的代码。 有entity framework创build和ASP.NET MVC3应用程序的任何简单和可testing的架构?
我有两个冲突的行动方法。 基本上,我希望能够使用两个不同的路线,通过一个项目的ID或项目的名称和它的父母(项目可以有不同的父母相同的名称)的相同的看法。 search项可以用来过滤列表。 例如… Items/{action}/ParentName/ItemName Items/{action}/1234-4321-1234-4321 这里是我的操作方法(也有Remove操作方法)… // Method #1 public ActionResult Assign(string parentName, string itemName) { // Logic to retrieve item's ID here… string itemId = …; return RedirectToAction("Assign", "Items", new { itemId }); } // Method #2 public ActionResult Assign(string itemId, string searchTerm, int? page) { … } 这里是路线… routes.MapRoute("AssignRemove", "Items/{action}/{itemId}", new { […]
在OOPdevise模式中,存储库模式和服务层之间有什么区别? 我正在研究一个ASP.NET MVC 3应用程序,并试图了解这些devise模式,但我的大脑只是没有得到它…但!
我是entity framework的新手。 我想设置一个MVC应用程序什么使用EF 6.我正在使用Code First Migrations。 我在应用程序中使用区域,并希望在每个区域有不同的DbContexts分解。 我知道EF 6有ContextKey,但我找不到有关如何使用它的完整信息。 目前,我一次只能使用一种上下文迁移。 有人能给我一个足够的细节给一个新的人来EF像我一样理解和使用。
我想弄清楚正确的Razor语法,以获得一个特定的* .cshtml的JavaScript文件在头标记以及在_Layout.cshtml中定义的所有其他包含文件。
几天前,Derik Whitaker发表了一篇文章 ,提到了我一直很好奇的一点: 业务逻辑是否应该存在于控制器中? 到目前为止,我所见过的所有ASP.NET MVC演示都将控制器中的存储库访问权限和业务逻辑放在一起。 有些甚至在那里也进行validation。 这导致相当大,臃肿的控制器。 这真的是使用MVC框架的方式吗? 看来,这只是最终会有很多重复的代码和逻辑分布在不同的控制器。
我的工具: Visual Studio 2012 Ultimate +更新1 ReSharper v7.1.25.234 我的解决scheme构build状态: build立成功 但是,当我安装ReSharper和ReSharper代码分析启用时,我的代码的许多关键字是红色的这个错误: “无法parsing符号XXX” 我的项目的另一张照片>> ReSharper“无法解决符号”错误无处不在,但我的项目构build过程是成功的,它的工作正常。 附加说明:如果我禁用ReSharper代码分析,我的项目将是正常的,但我想使用ReSharper代码分析。 我试过 ReSharper→ 选项 → 常规 → 清除caching 。 但我仍然有这个问题! 一个月前,我卸载了Visual Studio 2012 RC,并安装了VS 2012 RTM时,出现了这些错误。 我已经卸载并重新安装了ReSharper。 但是我有这个问题呢! 我的解决scheme有五个项目>>两个加载项目(主项目+资源项目)和三个卸载项目 我意识到我的Visual Studio也有更大的问题 (有关堆栈溢出的更多信息) 我不能添加任何对我的项目的参考(甚至在新的解决scheme和新项目中) 我不能安装任何软件包(通过“数据包pipe理器控制台”或pipe理NuGet软件包) 我无法更新任何包(通过“包pipe理器控制台”或pipe理NuGet包) 我做了很多的build议(我自己和其他人) 重新注册一些DLL文件 使用一些窗口和registry修复工具 删除ReSharper 修复Visual Studio 和… 但是我解决不了。 我正在考虑安装一个新的Windows 🙁 什么是错的,我该如何解决?
我已经花了一些时间看菲尔·哈克关于分组控制器的文章非常有趣的东西。 目前,我正试图弄清楚是否可以使用相同的思路为我正在开发的项目创build插件/模块化体系结构。 所以我的问题是:是否有可能在菲尔的文章区域跨多个项目分裂? 我可以看到名字空间会自行解决,但是我关心的是正确的地方。 是否可以通过构build规则进行sorting? 假设以上是可能的在一个单一的解决scheme中的多个项目,没有人有任何想法,使一个单独的解决scheme和编码预定义的一组接口的可能性最好的方法吗? 从一个区域移动到一个插件。 我有一些插件架构的经验,但不是群众,所以在这方面的任何指导将是有益的。
我试图将默认的MVC项目(从Visual Studio 2013)部署到远程服务器上。 他们要求程序以中信任模式运行,这是我遇到的问题。 我已经将<trust level="Medium" originUrl="" />到Web.config的<system.web>部分。 然后当我尝试在本地机器上运行该程序时 ,下面的代码引发了一个SecurityException: @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" }) 这是位于_Layout.cshtml文件,我没有修改从生成的模板(当你创build一个新的MVC 5项目)。 我的问题是:我需要做些什么来让我的项目在中等信任模式下运行?