在小黄瓜语法中(由Cucumber和SpecFlow使用,我可以通过在前面添加'#'来注释掉一行
有没有办法阻止评论多行?
我正在Angular.js中实现一个网站,它正在攻击ASP.NET WebAPI后端.
Angular.js具有一些内置功能,可以帮助防止csrf.在每个http请求中,它将查找名为"XSRF-TOKEN"的cookie并将其作为名为"X-XSRF-TOKEN"的标头提交.
这依赖于Web服务器能够在对用户进行身份验证之后设置XSRF-TOKEN cookie,然后检查X-XSRF-TOKEN标头以获取传入请求.
该角文档状态:
要利用这一点,您的服务器需要在第一个HTTP GET请求中在名为XSRF-TOKEN的JavaScript可读会话cookie中设置令牌.在后续的非GET请求中,服务器可以验证cookie是否与X-XSRF-TOKEN HTTP标头匹配,因此请确保只有您域上运行的JavaScript才能读取令牌.令牌对于每个用户必须是唯一的,并且必须由服务器验证(以防止JavaScript组成自己的令牌).我们建议令牌是您网站的身份验证cookie的摘要,以增加安全性.
我找不到ASP.NET WebAPI的任何好例子,所以我在各种来源的帮助下推出了自己的例子.我的问题是 - 任何人都可以看到代码有什么问题吗?
首先我定义了一个简单的帮助器类:
public class CsrfTokenHelper
{
const string ConstantSalt = "<ARandomString>";
public string GenerateCsrfTokenFromAuthToken(string authToken)
{
return GenerateCookieFriendlyHash(authToken);
}
public bool DoesCsrfTokenMatchAuthToken(string csrfToken, string authToken)
{
return csrfToken == GenerateCookieFriendlyHash(authToken);
}
private static string GenerateCookieFriendlyHash(string authToken)
{
using (var sha = SHA256.Create())
{
var computedHash = sha.ComputeHash(Encoding.Unicode.GetBytes(authToken + ConstantSalt));
var cookieFriendlyHash = HttpServerUtility.UrlTokenEncode(computedHash);
return cookieFriendlyHash;
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我在授权控制器中使用以下方法,并在调用FormsAuthentication.SetAuthCookie()后调用它:
// http://www.asp.net/web-api/overview/security/preventing-cross-site-request-forgery-(csrf)-attacks
// http://docs.angularjs.org/api/ng.$http
private void SetCsrfCookie() …Run Code Online (Sandbox Code Playgroud) (Windows 7 x86)
如果我运行netstat -ab,我会得到一个活动连接列表,以及打开连接的应用程序的名称.
但是,某些连接(包括我的应用程序打开的连接)列为:
无法获取所有权信息
为什么?
谢谢,
达伦.
我一直在开始使用Nuget.我的一些项目允许我向Nuget包添加库包引用,但是当我选择"已安装的包"时,我没有看到列出的任何包.为什么不?
编辑 - 我知道答案(见下文),我将自己作为一个"社区服务"回答这个问题,但由于我的蹩脚代表得分而不能再用另一个8小时.
答案是:项目已经将package.config文件放在与csproj文件相同的目录中,但是packages.config文件没有添加到项目中.通过"添加现有项目"并选择packages.config文件进行修复.
注意:事后看来,粉红色的""packages.config"已经存在,nuget进度窗口中的"跳过"消息应该提醒我这一点.
希望这有助于某人.
类似于这个被标记为重复的问题(所以我无法直接回答).
我有一个webapi项目,它引用了一个PCL项目.我间歇性地得到了这个DefaultContractResolver错误.
我尝试了其他问题的所有故障排除步骤,主要涉及卸载和重新安装nuget软件包.没有帮助.
我们已经为一个新项目采用了WebDeploy,它似乎很好地处理了我们的应用程序部署到我们的开发和测试服务器.
现在我们想扩展WebDeploy的使用,以使其部署数据库更改.
通过Web Deploy,您不仅可以发布文件,还可以配置数据库架构/数据,运行数据库更改脚本,设置安全ACL等
...但是我找不到有关如何使用WebDeploy运行数据库更改脚本的任何好信息.
有没有人为此提供指导,建议,最佳实践或信息链接?
谢谢
达伦.
我有一个中等复杂的应用程序,单元测试项目针对.NET Framework 4.6.1
如果我在包管理控制台中运行以下内容:
update-package -reinstall -project velogicfit.Sizer3D.Core.UnitTests
...然后Nuget将一堆绑定重定向添加到单元测试项目的app.config文件中,重定向到System.Runtime之类的v4.1.1.0:
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
然后,当项目运行时(通过NCrunch),它失败并显示以下消息:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
我可以通过安装更新的框架版本来修复错误,但我宁愿了解是什么导致Nuget添加这些绑定重定向.
查看单元测试项目输出目录中的每个DLL,我可以看到的最高参考是system.runtime v4.0.20.0
我已经尝试了asmspy,它还报告了4.0.20.0有一些依赖,但4.1.1.0没有
FWIW,对system.runtime v4.0.20.0的引用都来自我在解决方案中的其他项目,它们针对的是NETStandard 1.4
问题:
我目前正在使用NLog来记录我的ASP.NET MVC3应用程序中的安全事件.
现在我们有另一个要求将应用程序错误添加到单独的日志中.
由于我们已经在使用NLog(并且喜欢目标的灵活性),我想配置Elmah将错误传递给NLog进行日志记录.
有没有人这样做并关心分享?
用例是我们有一个包含大量 Angular 的页面。有时我们会弹出一个模态,当用户与模态交互时,它会发送导致主页(位于半透明覆盖层后面,但仍然部分可见)更新的消息。
这令人分心,我想在模态打开时“锁定”主页。
我可以通过在 $rootScope 上设置一些属性并使各个 Angular 控制器意识到这一点来做到这一点,但我真的只想选择主页上的 DOM 元素,并从本质上暂时从它们中解开它们的作用域,然后重新连接它们当模态关闭时。