草庐IT

邮件安全Office365

全部标签

c# - 使用 System.IO.File 辅助方法的 "sequential"文件 I/O 是否安全?

我刚看到这个问题:IsitsafetousestaticmethodsonFileclassinC#?.总而言之,OP有一个IOException,因为此ASP.NET代码片段中正在使用文件:vartext=File.ReadAllText("path-to-file.txt");//DosomethingwithtextFile.WriteAllText("path-to-file.txt");我的第一个想法是,由于多个ASP.NET重叠请求,这是一个简单并发访问问题。我要解决的问题是将I/O集中到一个同步的线程安全类中(或删除文件以支持其他内容)。我阅读了这两个答案,当我正要对其中

c# - 如何在不同的安全上下文中启动线程?

如何在不同用户的安全上下文中启动线程?当进程正常启动线程时,安全上下文也会被传递,但如何使用不同用户的主体在不同的安全上下文中启动线程? 最佳答案 我相信你可以设置CurrentPrincipal作为线程启动后线程代码的第一个操作,然后才开始执行本应与其他主体一起运行的代码。这应该会处理任何基于.NET角色的检查。如果您还需要模拟来调用操作系统,您可以模拟WindowsIdentity。代码(可能有效也可能无效——没有测试):publicvoidRun(objectprincipalObj){if(principalObj==nul

c# - Lazy<T> 是线程安全的惰性加载单例的良好解决方案吗?

我们在get上使用双重锁定实现了一个延迟加载的单例,以确保实例只初始化一次(而不是由于线程竞争条件而初始化两次)。我想知道是否只使用Lazy是解决这个问题的好方法吗?即.privatestaticLazy_instance=newLazy(()=>returnnewMyClass());publicstaticMyClassInstance{get{return_instance.Value;}} 最佳答案 我建议你阅读评论中的引用文章:LazyClassImplementingtheSingletonPatterninC#在所有情

c# - 使用 ASP.Net vNext 发送邮件

在传统的ASP.Net和.Net中,发送邮件通常是通过位于System.dll中的System.Net.Mail类完成的。现在有了KRE,vNext似乎没有System.Net.Mail作为单独的包。在project.json中引用"net453"框架"frameworks":{"aspnet50":{},"aspnetcore50":{},"net453":{}//导致所有hell都因错误而崩溃:.NETFramework4.5.3errorCS0234:Thetypeornamespacename'AspNet'doesnotexistinthenamespace'Microsof

c# - WCF 身份验证 - 验证消息的安全性时出错

我在使用clientCredentialType="UserName"连接到我的WCF服务时遇到问题。当我运行下面的代码时出现错误FaultException:Anerroroccurredwhenverifyingsecurityforthemessage.当玩弄一些绑定(bind)值时,我也得到Accessisdenied.。Fiddler说没有授权header,我在请求中也找不到用户名或密码。以下是我的配置的摘录:我的用户名/密码验证器如下所示:publicclassUserAuthentication:UserNamePasswordValidator{publicoverri

c# - 没有锁的线程安全集合

我正在准备面试,遇到了以下问题。我试过了,但我找不到任何可以创建一个包含没有“锁”的线程安全集合的类的东西。如果知道任何解决方案,请提供帮助。创建一个派生自Object的C#类并实现以下方法:AddString–此方法应将给定字符串添加到内部集合ToString–覆盖此方法并返回一个逗号分隔的字符串,其中包含内部集合中的所有字符串要求:必须是线程安全的必须支持多个并发读者不得使用任何预先存在的线程安全集合奖励:不要使用任何类型的锁 最佳答案 这是一种实现集合无锁修改的方法,方法是处理本地副本,然后在检查竞争的同时尝试将其与全局集合进

c# - 通过 OpenID Connect 从 Azure AD 获取用户的电子邮件地址

我正在尝试使用他们的Office365帐户对访问我网站的用户进行身份验证,因此我一直遵循有关使用OWINOpenIDConnect中间件添加身份验证的指南,并成功地设法对他们的个人资料进行身份验证和检索。我现在正在尝试获取用户的电子邮件地址(以便我可以使用他们的详细联系信息填充他们的系统帐户),但我似乎无法收回电子邮件声明。我已尝试使用范围openidprofileemail发出请求,但声明集不包含任何邮件信息。有没有办法通过OpenIDConnect端点从AzureAD获取用户的电子邮件? 最佳答案 在找到解决方案之前,我为同一个

c# - BinaryFormatter 序列化和反序列化线程安全吗?

引用this回答一个问题。这可以重写为:privatestaticBinaryFormatterformatter=newBinaryFormatter();publicstaticTDeepClone(thisTa){using(MemoryStreamstream=newMemoryStream()){formatter.Serialize(stream,a);stream.Position=0;return(T)formatter.Deserialize(stream);}}所以避免为每次调用构造(和GC'ing)一个新的BinaryFormatter?此代码路径经常受到攻击,因

c# - 在电子邮件标题中列出取消订阅。如何?

我正在尝试将List-Unsubscribeheader添加到我正在发送的电子邮件中。到目前为止,我没有任何运气尝试这样做。到目前为止我得到了什么:varmailMessage=newMailMessage{Subject=newsletter.Subject,Body=newsLetterHTML,IsBodyHtml=true,Sender=newMailAddress(senderAddress)};mailMessage.To.Add(subscriber.Email);mailMessage.ReplyToList.Add(senderAddress);mailMessage

c# - 检测相似电子邮件地址的最佳方法?

我有一个包含大约20,000个电子邮件地址的列表,我知道其中一些是试图绕过“每封电子邮件1个”限制的欺诈性尝试,例如username1@gmail.com、username1a@gmail.com、username1b@gmail.com等。我想找到类似的电子邮件地址进行评估。目前,我正在使用Levenshtein算法来对照列表中的其他电子邮件检查每封电子邮件,并报告任何编辑距离小于2的电子邮件。但是,这非常慢。有没有更有效的方法?我现在使用的测试代码是:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;using