小编Sim*_*com的帖子

使用log4net捕获用户名

我目前将所有log4net事件写入数据库,它似乎工作正常.要捕获登录的用户帐户,我使用以下代码:

HttpContext context = HttpContext.Current;
if (context != null && context.User != null && context.User.Identity.IsAuthenticated)
{
    MDC.Set("user", HttpContext.Current.User.Identity.Name);
}
Run Code Online (Sandbox Code Playgroud)

代码似乎没问题,除了没有与之关联的用户上下文的事件(即我们公共网页上的用户).在这种情况下,log4net捕获似乎有时写入最后登录的用户帐户(坏),有时写入空(好).任何人都有这个功能在所有情况下都可靠地工作?我相信我看到一条说明MDC不再是推荐使用的功能,但我无法找到任何推荐的替代品.

注意:我发现MDC设置了帐户名称很奇怪,但如果没有用户处于活动状态,则永远不会清除.这可能是问题的一部分.但是,我没有找到任何也清除用户名的MDC代码提取.

c# asp.net logging log4net

19
推荐指数
3
解决办法
2万
查看次数

修复了Windows EC2计算机上的MAC地址

在我们拥有它的Windows机器上,可以将MAC地址更改为预先指定的值.但是可以将EC2 Windows机器上的MAC地址设置为预先指定的值吗?

这是问题所在:

我们提供运行Amazon EC2的虚拟实验室/培训/评估环境.客户通常希望在云中运行许可软件(他们拥有!),但许可组件需要固定的MAC地址才能存在.

但是,如果我们调整MAC地址,尤其是在重启或机器快照之后,还不清楚EC2会发生什么.我看到的一个大问题是,如果我们拍摄具有固定MAC的机器的快照,然后启动它的多个副本,那么理论上每个副本将具有相同的MAC地址.显然是一个路由问题.

但是,目前还不清楚会发生什么,或者底层虚拟化堆栈是否只是在每次启动机器时生成随机MAC.

当然,如果你有想法,我很想听听其他解决方法.

cloud amazon-ec2 windows-server-2008 amazon-web-services

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

使用ASP.NET发送电子邮件的临时问题

我讨厌在这里发布一个堆栈跟踪,但我没有想法......我的应用程序在网站上发送各种任务的电子邮件,90%的时间都没有问题.但是,ASP.NET经常会抛出一个奇怪的异常,这似乎与邮件服务器连接有关(我使用谷歌业务服务器来处理电子邮件).这个错误对我来说太通用了,所以下面的堆栈跟踪.我的应用程序捕获异常并回写一个通用的"在5分钟响应中再试一次".

我被这个错误困扰了,因为:

  • 谷歌电子邮件通常非常可靠(它是从我的域发送的,而不是gmail.com).
  • 卷非常低,所以这不应该是加载/垃圾邮件类型的问题.
  • 错误非常通用.
  • 在5分钟内再次尝试几乎总是允许发送电子邮件没有问题,没有任何参数(收件人,主题,正文)发生了变化.

有任何想法吗?我能想到的唯一突出问题是:

  1. 电子邮件发送是同步的 这就是我实际想要发生的事情,因为我想用成功/失败状态消息来响应用户.
  2. 我使用Amazon EC2作为服务器,如果这与此事有任何关系.

代码:

    public static void SendMail(String from, String to, String subject, String body, bool IsHtml)
    {
        MailMessage m = new MailMessage(from, to, subject, body);
        m.IsBodyHtml = IsHtml;

        SmtpClient smtpClient = new SmtpClient();
        smtpClient.EnableSsl = true;
        smtpClient.Send(m);
    }
Run Code Online (Sandbox Code Playgroud)

例外:

System.Net.Mail.SmtpException: Error in processing. The server response was: 4.3.0 Mail server temporarily rejected message. m6sm2190005vcx.24
at System.Net.Mail.DataStopCommand.CheckResponse(SmtpStatusCode statusCode, String serverResponse)
at System.Net.Mail.DataStopCommand.Send(SmtpConnection conn)
at System.Net.Mail.SmtpConnection.OnClose(Object sender, EventArgs args)
at System.Net.ClosableStream.Close()
at System.Net.Mail.MailWriter.Close() …
Run Code Online (Sandbox Code Playgroud)

c# asp.net smtp

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

数据库加密或应用程序级加密?

当您需要存储CC或SSN等敏感数据时,您是否:

1)在应用程序中构建自己的加密例程,在配置文件中的某处定义密钥,然后手动加密/解密进入数据库的数据.

2)使用内置的数据库功能将所有问题推送到数据库(我认为大多数供应商称之为透明数据库加密).

您为解决方案找到了哪些权衡取舍?与TDE相比,编写自己的例程表现不佳吗?代码是否可维护,或者相反,DB供应商锁定问题?

database asp.net security encryption tde

9
推荐指数
2
解决办法
7886
查看次数

确定电子邮件地址是否为"公开"

我想确定一个电子邮件地址是来自公共提供商还是来自已建立的企业.我认为公共电子邮件地址是这样的:

  • 打开电子邮件服务提供商,例如gmail,hotmail和yahoo.
  • 匿名服务,例如mailinator或dispostable.

我知道没有万无一失的方法可以做到这一点,显然任何基于列表的解决方案都需要不断更新.

是否有可以为我执行此操作的公开列表或.NET库?

c# asp.net security

7
推荐指数
1
解决办法
1279
查看次数

EC2的IP地址范围

有关Amazon EC2使用的公共IP地址范围的公开信息吗?我希望能够查找IP并知道它是否是EC2机器.我知道给EC2机器的DNS名称提示它是一个EC2帐户,但我真的更喜欢只提供IP查找.

Tx,Simon @ http://LabSlice.com

dns amazon-ec2 amazon-web-services

4
推荐指数
1
解决办法
5606
查看次数

缺乏CDN可用性

我同时使用Telerik和Microsoft CDN作为他们各自的AJAX工具包.两者在99%的时间都很有效.然而,我最近在两个不同的咖啡馆工作,并去访问我的网站:第一个咖啡馆不允许Telerik CDN,而第二个咖啡馆不允许Microsoft CDN作为URL请求.我实际上可以看到IE中的状态栏显示"ajax.microsoft.com"作为正在检索的文件,因为我正在等待网站加载.

缺乏CDN访问似乎是一个非常不寻常的问题.事实上,我无法理解为什么当咖啡馆似乎允许其他所有东西时,这些URL请求会被阻止.任何原因?这可能是相关CDN本身的可用性问题(即这些CDN的可靠性如何)?当然,除了丢弃CDN使用外,还有一个推荐的解决方案吗?


更新:我现在可以连接到我的应用程序.因此,我无法访问ajax.microsoft.com很可能是暂时缺乏MS CDN可用性,而不是任何域名阻止.

asp.net performance cdn telerik

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