我可能已经知道了这一点,但我不确定,我也没有记录.
我在开发过程中经常使用System.Diagnostics.Debug.WriteLine来跟踪变量或异常的变化,因为我正在调试代码.这意味着只有在开发过程中才能更容易地开发和理解发生的事情.我通常要么注释掉代码,要么在我去制作时将其删除.
我想知道如果我忘记评论代码会发生什么.比如说,在开发周期中,我正在跟踪可能使用Debug.Write Line将连接sting到输出窗口的错误信息.这显然可以在开发时使用,但我想知道当我上线时,如果这里存在风险.有人可以将调试器附加到我的实时可执行文件并捕获此输出吗?或者它只是在Visual Studio中产生输出?
那么当我们从调试切换到发布时呢?如果我们编译发布版本,编译器是否会忽略此代码?
我知道这可能是一个非常基本的问题,但也许这就是为什么我找不到答案的问题.现在,我正在通过执行以下操作在源文件中创建数据库连接:
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文件中的连接字符串吗?
谢谢!
有没有办法将图像与app_offline文件一起使用?我想让app_offline看起来像网站的其他部分 - 相同的标题等,其中包括一个图像.
我确实试图找到一种方法来做到这一点,但我似乎无法这样做.我遇到过的论坛帖子说这是不可能的,因为app_offline会强制所有请求(甚至那些用于图片和css的请求)重定向到app_offline页面,但我希望这里的某个人能得到答案.显然,我可以将CSS嵌入到HTML中,而不是指向网站的.css文件,但我不知道如何解决图像问题.
这是因为我昨晚给出了一个糟糕的答案.关于为什么一种方法起作用而不是另一种方法的好奇心在于烦扰我,我希望比我更聪明的人可以给我正确的解释(或指向我的文档),说明为什么以下行为是这样的.
鉴于以下代码隐藏:
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)
编辑 - 添加
有可能让我原来的愚蠢答案下载更多次,这里是原始问题的链接,因为我现在得到的一些答案已经涵盖在那个问题中.
我们的.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正是我们想要的,我们真的想找到解决这个问题的方法.
还有其他人面对这个并提出解决方案吗?
如果你看过一篇文章或发帖,你可以与我分享,那也会有所帮助.
像往常一样,我对这样的答案持开放态度,"你看错了,傻瓜,这就是它应该做的事情.
如果这是一个愚蠢的问题,请原谅我.我未能找到明确说明的答案.
我很少在我的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输出?我一直在做不必要的编码吗?
我不确定这是关于主题还是不在这里,但它是如此特定于.NET WinForms我相信它在这里比在Security stackexchange站点更有意义.
(此外,它与安全编码严格相关,我认为这与任何询问我在整个网站上看到的常见网站漏洞的问题一样.)
多年来,我们的团队一直在对网站项目进行威胁建模.我们的模板的一部分包括OWASP Top 10以及其他众所周知的漏洞,因此,当我们进行威胁建模时,我们始终确保我们有一个文档化的流程来解决每个常见漏洞.
例:
SQL注入(Owasp A-1)
无论如何,我们使用OWASP Top 10作为网站特有的众所周知的漏洞的起点.
(最后到了问题)
在极少数情况下,当Web应用程序无法满足需求时,我们会开发WinForms或Windows Service应用程序.我想知道是否有一个等效的WinForms应用程序安全漏洞列表.
在我的头顶,我可以想到一些....
是否有这样的列表,甚至是这样一个列表的几个版本,我们可以从中借用来创建自己的列表?如果是这样,我在哪里可以找到它?
我一直无法找到它,但如果有的话,对我们以及其他WinForms开发人员来说将是一个很大的帮助.
我有一个带有字符串属性的Windows窗体用户控件,用于设置文本框的文本.这个字符串可以是多行的.
我注意到在一些带有文本属性的控件上,而不是强制键入单行属性文本框,你可以弹出一个可以键入多行的地方.(事实上,Windows窗体文本框控件允许在Text属性上使用它.)
如何在属性窗口中为我设计的属性启用此功能?
以下不是我的应用程序中的真实代码,而是如何定义此类属性的示例
public string Instructions
{
get
{
return TextBox1.Text;
}
set
{
TextBox1.Text = value;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含表格的html页面,我想用C#窗体表格解析该表格
这是我想解析的网页我试过了
> Foreach(Htmlnode a in document.getelementbyname("tr"))
{
richtextbox1.text=a.innertext;
}
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情,但它不会以表格形式给我,因为我只是打印所有trs所以请帮助我关于这个thanx抱歉我的英语.
我找到了答案,却找不到答案.它必须是显而易见的东西,我只是想念它.
我们在app.config文件中有一个连接字符串问题.它使用SQL Server身份验证,密码包含"&"和"+"符号.显然解析是错误的.此时更改密码将是一件麻烦事.有办法处理这个吗?

asp.net ×4
.net ×3
c# ×3
app-config ×1
data-binding ×1
debugging ×1
html-table ×1
owasp ×1
parsing ×1
security ×1
tfs ×1
winforms ×1
xss ×1