在Web API项目中,我重写了正常的身份验证过程来检查令牌.代码看起来像这样:
if ( true ) // validate the token or whatever here
{
var claims = new List<Claim>();
claims.Add( new Claim( ClaimTypes.Name, "MyUser" ) );
claims.Add( new Claim( ClaimTypes.NameIdentifier, "MyUserID" ) );
claims.Add( new Claim( ClaimTypes.Role, "MyRole" ) );
var claimsIdentity = new ClaimsIdentity( claims );
var principal = new ClaimsPrincipal( new[] { claimsIdentity } );
Thread.CurrentPrincipal = principal;
HttpContext.Current.User = principal;
}
Run Code Online (Sandbox Code Playgroud)
然后,当我将[Authorize]
属性应用于控制器时,它无法授权.
调试代码确认相同的行为:
// ALWAYS FALSE!
if ( HttpContext.Current.User.Identity.IsAuthenticated ) {
// do something
} …
Run Code Online (Sandbox Code Playgroud) c# asp.net claims-based-identity asp.net-4.5 asp.net-web-api
在发布这个问题时,我想出了答案,但我会在这里发布以防万一它可以帮助其他人,也许有人可以帮助解决发生的事情的原因.
当我跑:
sudo npm install -g grunt
Run Code Online (Sandbox Code Playgroud)
最后一部分说:
/usr/bin/grunt -> /usr/lib/node_modules/grunt/bin/grunt
npm ERR! peerinvalid The package flatiron does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer flatiron-cli-config@0.1.3 wants flatiron@~0.1.9
npm ERR! peerinvalid Peer flatiron-cli-users@0.1.1 wants flatiron@~0.1.9
npm ERR! System Linux 3.5.0-23-generic
npm ERR! command "nodejs" "/usr/bin/npm" "install" "-g" "grunt"
npm ERR! cwd /home/explunit
npm ERR! node -v v0.8.19
npm ERR! npm -v 1.2.9
npm ERR! code EPEERINVALID
npm ERR!
npm ERR! Additional logging details can be …
Run Code Online (Sandbox Code Playgroud) 我正在尝试设置requirejs,然后使用r.js对其进行优化,但后来我对这些方法感到困惑.我之前使用过require.config(),但之后我看到他们也有requirejs.config(),我不知道有什么区别.示例代码:
require.config({
baseUrl: 'js/lib',
paths: {
app: '../app'
}
});
requirejs.config({
baseUrl: 'js/lib',
paths: {
app: '../app'
}
});
Run Code Online (Sandbox Code Playgroud)
他们都做同样的事情.当我优化它时,结果完全相同.我想知道有什么区别?我什么时候应该使用或其他?
是否可以将Grunt配置文件放在项目的子目录中?我想这样做是为了让事情更有条理.
例如
的myproject /咕噜/ Gruntfile.js
的myproject /咕噜/的package.json
的myproject /咕噜/ node_modules /
我在使用此配置下从Gruntfile.js运行命令时遇到问题.Grunt可以处理查找父目录吗?或许我做错了
sass: {
dev: {
files: {
"../style.css": "../scss/style.scss"
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我跑这个Grunt似乎只是耸耸肩,不明白我希望它在父目录中查看...
Source file "scss/style.scss" not found.
Run Code Online (Sandbox Code Playgroud) 我们有一个使用Knockout和Backbone构建的单页面应用程序,它使Ajax调用服务器并执行一些复杂的数据缓存和DOM渲染.我们非常想测量用户看到的性能(并将其记录回服务器).我似乎无法理解浏览器Navigation Timing API是否会对此有用.从我在示例中看到的,导航时序API与之相关,window.performance
并且这仅限于页面加载,不适合监视Ajax行为.对或错?如果不对,我还能使用什么?
我喜欢设置自定义检测点,在这些点之间测量时间,例如,对于使用服务器结果进行DOM渲染的Ajax调用.
javascript ajax profiling single-page-application navigation-timing-api
我在互联网上看了很多例子如何用requireJS开始开发BB应用程序,但我有点迷失.
我认为AMD的目标是只在真正需要时加载文件.不久
为什么我只看到开发人员将几乎所有文件作为依赖项放在他/她的主文件开头的示例?
这是一个例子:https: //github.com/jcreamer898/RequireJS-Backbone-Starter/tree/master/js
这个应用程序立即加载main.js,这取决于app.js加载router/home.js,这需要view/view.js加载视图的模板和models/model.js ......和结束.
我无法看到如何扩展此应用程序,例如更多视图,其中视图的依赖项(其模型,模板,集合,第三方API等)仅在路由器调用和初始化时加载.换句话说,在初始化应用程序时加载所有文件时使用AMD是无稽之谈.
类似的例子:http: //backbonetutorials.com/organizing-backbone-using-modules/请参阅router.js文件.实际上它加载'views/projects/list'和'views/users/list'依赖关系,而路由器没有知道用户将来是否需要它们.
请提前,谢谢!
我在文档中注意到有一种方法可以将自定义配置传递到模块中:
requirejs.config({
baseUrl: './js',
paths: {
jquery: 'libs/jquery-1.9.1',
jqueryui: 'libs/jquery-ui-1.9.2'
},
config: {
'baz': {
color: 'blue'
}
}
});
Run Code Online (Sandbox Code Playgroud)
然后您可以从模块访问:
define(['module'], function (module) {
var color = module.config().color; // 'blue'
});
Run Code Online (Sandbox Code Playgroud)
但是还有一种方法可以访问顶级路径配置,就像这样吗?
define(['module', 'require'], function (module, require) {
console.log( module.paths() ); // no method paths()
console.log( require.paths() ); // no method paths()
});
Run Code Online (Sandbox Code Playgroud)
仅供参考,这不适用于生产现场.我正在尝试在QUnit测试页面中连接一些奇怪的调试/配置代码.我想枚举哪些模块名称定义了自定义路径.这个问题触及了这个问题,但只让我查询已知的模块,而不是枚举它们.
我有一组嵌套的元素(SVG).根元素是图形,子元素是图形中的元素(线,轴等).简化示例:
<g transform="translate(80,10)" id="mainGraph">
<g class="Line">
<path d="....."></path>
</g>
</g>
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我将mouseover/mousemove事件(例如D3.on("mouseover")绑定到mainGraph元素,它只会在我将鼠标移动到其中一个子元素上时触发.
我读到的其中一件事是后续元素的优先级,所以我将.style("指针事件","无")添加到所有子元素,但这不起作用.
我正在尝试重现用于执行Java的API(如ideone.com),但到目前为止,我在运行Java沙箱时遇到了很多困难(SELinux沙箱不起作用).
我听说过SecurityManager,但是我想弄清楚在沙盒中运行Java代码的最简单方法(有点像在浏览器中运行的Java applet),而不是使用SecurityManager编写自己的jail服务器.