我已经从这里下载并成功运行了ASP.NET Identity示例:https: //github.com/rustd/AspnetIdentitySample
我现在正在我的项目中实现ASP.NET Identity框架,并遇到了一个问题,这让我整天都疯了......
GetOwinContext()不存在作为我的扩展方法HttpContext
我正在类库中实现身份框架.我已经安装了Identity框架的所有最新版本(预发布版本),除此之外的所有内容都正常工作.
我尝试在我的控制器中实现与直接相同的代码,并找到相同的问题.
我显然错过了某个地方的参考,虽然我不知道是什么..!..
杀死我的代码块是:
private IAuthenticationManager AuthenticationManager
{
get
{
return HttpContext.GetOwinContext().Authentication;
}
}
Run Code Online (Sandbox Code Playgroud)
我添加了对以下内容的引用 - 在我的类库中尝试了这些并且也直接在控制器上,它们都不适合我...
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Owin.Security;
using Microsoft.Owin;
using System.Web;
Run Code Online (Sandbox Code Playgroud)
......这让我起了墙......任何想法?
UPDATE
我已经检查了示例中Identity和OWIN的版本,并确保我的解决方案中有相同的版本.
更重要的是,如果我在样本上搜索对象浏览器,GetOwinContext我可以找到该方法,但是当我在我的解决方案中搜索它时,无处可寻......我必须有一些库过时,但我可以'找到它!
我在一个小团队工作,在AngularJS建立并试图保持一些基本标准和最佳实践; 特别是考虑到Angular相对较新.
我的问题是关于指令.更准确地说,restrict选项.
我们有些人使用restrict: 'E'因此具有<my-directive></my-directive>在html.
其他人正在使用restrict: 'A'和拥有<div my-directive></div>html.
然后,当然,您可以使用restrict: 'EA'和使用上述任何一种.
目前这没什么大不了的,虽然当这个项目变得如此之大时,我希望任何人都能看到它,以便轻松了解正在发生的事情.
对于做事物的属性或元素方式是否有利弊?
如果选择说元素超过属性,我们应该知道任何陷阱吗?
我很难确定我的角度应用程序中有哪些方法会导致错误:
Uncaught Error: [$injector:unpr] Unknown provider: nProvider <- n
这只有在ASP.Net捆绑和缩小javascript后才会发生.
我确保所有控制器和任何其他DI都使用缩小安全方法,IE我的控制器/服务等正在使用该方法:
appControllers.controller('myCtrl', ['$scope', function($scope){
//......
}]);
Run Code Online (Sandbox Code Playgroud)
我已经浏览了我们应用程序中的每个JS文件 - 有很多......并且找不到任何违反这种注入依赖关系的方法 - 尽管必须有一个...
有没有更好的方法来确定哪种方法可能导致此错误?
谢谢
我正在使用Bootstrap v3.
我有导航栏类,所以当我的屏幕移动大小导航崩溃并出现小网格状切换按钮 - 所以这是按预期工作.
我想要的是,这是所有屏幕尺寸的默认操作.也就是说,即使在桌面上,我也希望折叠导航并切换按钮.
我已经浏览了一下css,并且有很多东西提供了功能,但我不知道要改变哪些部分.
我已经尝试过评论更大的媒体查询,虽然它们有很多,但它似乎对其他样式产生了连锁反应.
有任何想法吗?
我们希望将Microsoft Reports - SSRS添加到我们的一个内部网站.
该数据库已安装所有报告功能.
该网站正在使用Entity Framework 4获取所有数据.
我已经能够使用传统的创建DataSet(*.XSD)的方式创建报表,这很有效.
但我的问题是,是否可以利用网站中现有的实体框架来获取报告所需的数据?而不是必须重新发明轮子并制作整个DataSet,以及关系等.
这是一个网站,而不是应用,所以这(http://weblogs.asp.net/rajbk/archive/2010/05/09/creating-an-asp-net-report-using-visual-studio-2010-part- 1.aspx)似乎不适用; 我没有看到DataSource(在教程的第2部分)
更新
作为旁注,我们希望避开昂贵的第三方控件等.
另外,查看问题的另一种方法可能是从实体框架实体模型生成*.XSD; 这可能吗?这不是理想的,但会让我们开始运行..
我正在构建一个新的angularJS应用程序,基于AngularJS SPA Visual studio模板(http://visualstudiogallery.msdn.microsoft.com/5af151b2-9ed2-4809-bfe8-27566bfe7d83)
这使用ui-router(https://github.com/angular-ui/ui-router)进行路由.
但是,它似乎区分大小写.
知道如何指示angular/ui-router忽略url参数的情况吗?
在应用程序中区分大小写无关紧要,但是如果用户键入一个URL以在特定页面上输入应用程序,我们需要确保它about也是相同的aBouT
干杯
这是一个简单的问题 - 它可能已被问到(只是找不到它......)
在操作数据时,何时使用指令过滤器,反之亦然?
在一个非常简单的例子中,请看这个Plunkr
基本上,我有以下内容 javascript
var app = angular.module('app', []);
app.controller('MyCtrl', ['$scope', function($scope){
$scope.testMessage = 'Some Text'
}]);
app.directive('myDirective', function(){
return{
restrict: 'A',
link: function(scope, element, attrs){
// do some stuff with the data
//
element.html(scope.testMessage + ' result of my directive');
}
}
});
app.filter('myFilter', function(){
return function(text){
// do something with text
return text + ' & result of my filter';
}
});
Run Code Online (Sandbox Code Playgroud)
以下 html
<body ng-controller="MyCtrl">
<div my-directive ng-model="testMessage" ></div>
<br />
<div>{{ testMessage …Run Code Online (Sandbox Code Playgroud) 我在下面的示例代码后实现了ASP.Net Identity:https: //github.com/rustd/AspnetIdentitySample
在我的实现中,我检查用户是否经过身份验证 - 这是从我的MVC控制器上的FilterAttribute调用的; 这个想法是我想确认他们在提供页面之前仍然是auth'ed.
所以在我的过滤器中,最终会调用以下代码:
_authenticationManager.User.Identity.IsAuthenticated;
Run Code Online (Sandbox Code Playgroud)
_authenticationManager 在这儿:
private IAuthenticationManager _authenticationManager
{
get
{
return _httpContext.GetOwinContext().Authentication;
}
}
Run Code Online (Sandbox Code Playgroud)
它_httpContext被传递到我的identityProvider类的构造函数中.
现在 - 一旦我登录,就按预期_authenticationManager.User.Identity.IsAuthenticated;返回true.
但是,在开发期间,我倾倒并重新播种了我的数据库,而没有添加用户.如此有效,我删除了IdentityUser - 但_authenticationManager.User.Identity.IsAuthenticated;STILL返回true
知道为什么会这样吗?我只能假设它以某种方式检查cookie,而不是实际查看数据库.它是否正确?
或者我搞砸了我的实施.....
首先 - 我已经搜索了SO并发现许多问题同样的事情,虽然只是添加<add namespace="System.Web.Mvc.Html" />我的web.config没有解决问题...
好的,所以我已经开始了一个基于模板Angular SPA的新项目 - 链接在这里:
http://visualstudiogallery.msdn.microsoft.com/5af151b2-9ed2-4809-bfe8-27566bfe7d83
我已将MVC升级到版本5,将webApi升级到版本2 - 与解决方案中的其他项目一致.
现在,在SPA站点的_layout页面中,我尝试使用@Html.ActionLink帮助程序,但不断收到错误'System.Web.WebPages.Html.HtmlHelper' does not contain a definition for 'ActionLink
我确信这完全取决于一些web.config配置 - 我安装的软件包和模板配置中的设置之间存在某种冲突.
特别是这部分:
<system.web.webPages.razor>
<host factoryType="System.Web.WebPages.Razor.WebRazorHostFactory, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.WebPages.WebPage">
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
</system.web.webPages.razor>
Run Code Online (Sandbox Code Playgroud)
如果我将其更改为使用版本5,那么我会收到程序集(v5)无法找到的错误等.
关于如何解决这个冲突,我的想法已经不多了.
以下是我的SPA web.config中的配置部分
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, …Run Code Online (Sandbox Code Playgroud) 我搜索了SO - 发现了许多相同的问题,但没有一个答案有帮助.
我已经建立了一堆网站,而不是之前遇到过这个问题.
基本上,我的脚本包为我的javascript文件夹中的每个文件生成404.
我的结构(此刻,我已经改变了一堆!)看起来像这样:

我这样做,所以我可以保证ASP.Net不会改变顺序 - 我可以确保某些脚本领先于其他脚本.这就是我一直这样做的方式,通常效果很好.
我的捆绑脚本 - 目前 - 是:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.FileSetOrderList.Clear();
// stlyes
StyleBundle cssBundle = new StyleBundle("~/bundles/css");
cssBundle.IncludeDirectory("~/content/css", "*.css", true);
bundles.Add(cssBundle);
//scripts
ScriptBundle jsBundle = new ScriptBundle("~/bundles/jscript");
jsBundle.IncludeDirectory("~/content/javascript", "*.js", true);
bundles.Add(jsBundle);
}
Run Code Online (Sandbox Code Playgroud)
我尝试过一大堆虚拟路径.
我的CSS加载完美.我的Js - 我得到404的清单; 每个*/js文件一个.
有任何想法吗?
我的控制台看起来像这样 - 这也告诉我bundles.FileSetOrderList.Clear();实际上并没有清除它的列表,否则我会在角度之前有jquery(这是我的意图)

UPDATE
如果我BundleTable.EnableOptimizations = true;在我的捆绑包中然后它全部捆绑,缩小和工作 - 虽然这很糟糕的开发调试 - 究竟是什么阻止它在调试模式下工作?!