小编Dav*_*vid的帖子

生产代码中的System.Diagnostics.Debug.WriteLine

我可能已经知道了这一点,但我不确定,我也没有记录.

我在开发过程中经常使用System.Diagnostics.Debug.WriteLine来跟踪变量或异常的变化,因为我正在调试代码.这意味着只有在开发过程中才能更容易地开发和理解发生的事情.我通常要么注释掉代码,要么在我去制作时将其删除.

我想知道如果我忘记评论代码会发生什么.比如说,在开发周期中,我正在跟踪可能使用Debug.Write Line将连接sting到输出窗口的错误信息.这显然可以在开发时使用,但我想知道当我上线时,如果这里存在风险.有人可以将调试器附加到我的实时可执行文件并捕获此输出吗?或者它只是在Visual Studio中产生输出?

那么当我们从调试切换到发布时呢?如果我们编译发布版本,编译器是否会忽略此代码?

.net debugging system.diagnostics

63
推荐指数
4
解决办法
2万
查看次数

在源代码文件中使用来自web.config的connectionstring

我知道这可能是一个非常基本的问题,但也许这就是为什么我找不到答案的问题.现在,我正在通过执行以下操作在源文件中创建数据库连接:

SqlConnection con = new SqlConnection("Data Source=...Password=...);
SqlCommand cmd = new SqlCommand(String.Format("SELECT * FROM Table;"), con);
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
Run Code Online (Sandbox Code Playgroud)

但这意味着,如果我选择更改数据库,那将是一个巨大的痛苦.你们知道如何使用web.config文件中的连接字符串吗?

谢谢!

c# asp.net

28
推荐指数
3
解决办法
8万
查看次数

app_offline文件中的图像

有没有办法将图像与app_offline文件一起使用?我想让app_offline看起来像网站的其他部分 - 相同的标题等,其中包括一个图像.

我确实试图找到一种方法来做到这一点,但我似乎无法这样做.我遇到过的论坛帖子说这是不可能的,因为app_offline会强制所有请求(甚至那些用于图片和css的请求)重定向到app_offline页面,但我希望这里的某个人能得到答案.显然,我可以将CSS嵌入到HTML中,而不是指向网站的.css文件,但我不知道如何解决图像问题.

asp.net

27
推荐指数
1
解决办法
5821
查看次数

为什么<%=%>在一种情况下起作用而在另一种情况下起作用

这是因为我昨晚给出了一个糟糕的答案.关于为什么一种方法起作用而不是另一种方法的好奇心在于烦扰我,我希望比我更聪明的人可以给我正确的解释(或指向我的文档),说明为什么以下行为是这样的.

鉴于以下代码隐藏:

protected string GetMyText(string input)
{
  return "Hello " + HttpUtility.HtmlEncode(input);
}
Run Code Online (Sandbox Code Playgroud)

为什么这样做

 <asp:Label ID="Label1" runat="server"><%= GetMyText("LabelText") %></asp:Label>
Run Code Online (Sandbox Code Playgroud)

但事实并非如此

<asp:Label ID="Label1" runat="server" Text='<%= GetMyText("LabelText") %>' />
Run Code Online (Sandbox Code Playgroud)

编辑 - 添加

有可能让我原来的愚蠢答案下载更多次,这里是原始问题的链接,因为我现在得到的一些答案已经涵盖在那个问题中.

为什么我不能通过调用aspx文件中的方法来设置asp:Label Text属性?

asp.net

18
推荐指数
3
解决办法
2985
查看次数

TFS和多个解决方案中的共享项目

我们的.NET团队为我们公司的项目工作,这些项​​目属于不同的类别.一些是内部Web应用程序,一些是外部(面向公众)的Web应用程序,我们还为公司办公室用户提供内部Windows应用程序,为我们的零售点(商店)提供Windows Forms应用程序.当然,因为我们讨厌代码重用,所以我们有大量代码在不同的应用程序之间共享.目前我们正在使用SVN作为源代码控制,我们的存储库布局如下:

 - = folder, | = Visual Studio Solution
-SVN
   - Internet
      | Ourcompany.com
      | Oursecondcompany.com
   - Intranet
      | UniformOrdering website
      | MessageCenter website
   - Shared
      | ErrorLoggingModule
      | RegularExpressionGenerator
      | Anti-Xss
      | OrgChartModule etc...
Run Code Online (Sandbox Code Playgroud)

所以..

Internet文件夹中的OurCompany.com解决方案将包含一个网站项目,它还包括共享目录中的ErrorLoggingModule,RegularExpressionGenerator和Anti-Xss项目.

同样,我们的UniformOrdering网站解决方案也会将每个项目都包含在解决方案中.

我们更喜欢对.dll引用的项目引用,因为首先,如果我们需要在OurCompany.com网站上工作时在ErrorLoggingModule中添加或修复一个函数,它就在那里.此外,这允许我们构建每个解决方案,并查看共享代码的更改是否会破坏任何其他应用程序.如果我是正确的,这应该在构建服务器上运行良好.

在SVN中,没有问题.SVN和Visual Studio没有像TFS的源代码控制那样捆绑在一起.我们在使用TFS时从未想过如何在TFS中使用这种类型的结构,因为在TFS中,TFS项目始终与Visual Studio解决方案相关联.源代码存储库是TFS项目的子代,因此如果我们想要这样做,我们必须复制每个TFS项目的源代码存储库中的共享代码.正如我的同事所说,这"打破了所有关于代码重用和简单性的最佳实践".我们切换到SVN对我们来说已经足够了.

然而,现在,我们面临着真正修复我们的开发流程,TFS的应用程序生命周期管理非常接近我们想要的,以及我们想要如何工作.我们的一个关键点是共享代码问题.

我们正在评估其他商业和开源解决方案,但由于我们已经通过我们的MSDN订阅支付了TFS,而且TFS正是我们想要的,我们真的想找到解决这个问题的方法.

还有其他人面对这个并提出解决方案吗?

如果你看过一篇文章或发帖,你可以与我分享,那也会有所帮助.

像往常一样,我对这样的答案持开放态度,"你看错了,傻瓜,这就是它应该做的事情.

tfs

18
推荐指数
1
解决办法
2万
查看次数

Bind()或Eval()会自动使用HtmlEncode来防范XSS吗?

如果这是一个愚蠢的问题,请原谅我.我未能找到明确说明的答案.

我很少在我的aspx页面中使用Bind()或Eval(),而是使用以下语法:(假设这是在Repeater控件中的ItemTemplate中)

<asp:Label id="lblFirstName" runat="server" Text='<%# Microsoft.Security.Application.AntiXss.HtmlEncode(DataBinder.Eval(Container.DataItem, "FirstName").ToString()) %>
Run Code Online (Sandbox Code Playgroud)

我很久以前就开始这么做了,根本就没有质疑它,但现在我发现这可能是矫枉过正的.现在我正在使用一个在整个地方都使用这种语法的CMS:

<asp:Label id="lblFirstName" runat="server" Text='<%# Bind("FirstName") %>
Run Code Online (Sandbox Code Playgroud)

所以我想知道,基本上,如果我使用Bind()或Eval()运行时自动HtmlEncode输出?我一直在做不必要的编码吗?

asp.net data-binding xss

14
推荐指数
1
解决办法
8582
查看次数

WinForms应用程序的常见漏洞

我不确定这是关于主题还是不在这里,但它是如此特定于.NET WinForms我相信它在这里比在Security stackexchange站点更有意义.

(此外,它与安全编码严格相关,我认为这与任何询问我在整个网站上看到的常见网站漏洞的问题一样.)

多年来,我们的团队一直在对网站项目进行威胁建模.我们的模板的一部分包括OWASP Top 10以及其他众所周知的漏洞,因此,当我们进行威胁建模时,我们始终确保我们有一个文档化的流程来解决每个常见漏洞.

例:

SQL注入(Owasp A-1)

  • 标准实践
    • 在可行的情况下,尽可能使用存储的参数化过程来访问数据
    • 如果存储过程不可行,请使用参数化查询.(使用我们无法修改的第三方数据库)
    • 仅当上述选项不可行时才转义单引号
    • 必须使用最小特权原则设计数据库权限
    • 默认情况下,用户/组无权访问
    • 在开发过程中,记录每个对象所需的访问权限(表/视图/存储过程)以及访问的业务需求.
    • [剪断]

无论如何,我们使用OWASP Top 10作为网站特有的众所周知的漏洞的起点.

(最后到了问题)

在极少数情况下,当Web应用程序无法满足需求时,我们会开发WinForms或Windows Service应用程序.我想知道是否有一个等效的WinForms应用程序安全漏洞列表.

在我的头顶,我可以想到一些....

  • SQL注入仍然是一个问题.
  • CLR通常会阻止缓冲区溢出,但如果将非托管代码与托管代码混合使用,则更有可能
  • .NET代码可以反编译,因此将敏感信息存储在代码中,而不是在app.config中加密...

是否有这样的列表,甚至是这样一个列表的几个版本,我们可以从中借用来创建自己的列表?如果是这样,我在哪里可以找到它?

我一直无法找到它,但如果有的话,对我们以及其他WinForms开发人员来说将是一个很大的帮助.

.net security owasp winforms

12
推荐指数
1
解决办法
2112
查看次数

在"属性"窗口中允许多行字符串属性

我有一个带有字符串属性的Windows窗体用户控件,用于设置文本框的文本.这个字符串可以是多行的.

我注意到在一些带有文本属性的控件上,而不是强制键入单行属性文本框,你可以弹出一个可以键入多行的地方.(事实上​​,Windows窗体文本框控件允许在Text属性上使用它.)

如何在属性窗口中为我设计的属性启用此功能?

以下不是我的应用程序中的真实代码,而是如何定义此类属性的示例

public string Instructions
{
   get
   {
      return TextBox1.Text;
   }
   set
   {
      TextBox1.Text = value;
   }
}
Run Code Online (Sandbox Code Playgroud)

c# visual-studio-2008 windows-forms-designer

9
推荐指数
1
解决办法
5786
查看次数

在C#中解析HTML表

我有一个包含表格的html页面,我想用C#窗体表格解析该表格

http://www.mufap.com.pk/payout-report.php?tab=01

这是我想解析的网页我试过了

> Foreach(Htmlnode a in document.getelementbyname("tr"))
{
    richtextbox1.text=a.innertext;
}
Run Code Online (Sandbox Code Playgroud)

我尝试过这样的事情,但它不会以表格形式给我,因为我只是打印所有trs所以请帮助我关于这个thanx抱歉我的英语.

c# parsing html-table html-agility-pack

8
推荐指数
2
解决办法
5万
查看次数

app.config中的ConnectionStrings包含.config文件不喜欢的字符

我找到了答案,却找不到答案.它必须是显而易见的东西,我只是想念它.

我们在app.config文件中有一个连接字符串问题.它使用SQL Server身份验证,密码包含"&"和"+"符号.显然解析是错误的.此时更改密码将是一件麻烦事.有办法处理这个吗?

阻止敏感数据的部分连接字符串

.net connection-string app-config special-characters

7
推荐指数
3
解决办法
9115
查看次数