Tag: 安全

Web作业上的Windows Azure管理库认证错误

我构建了一个Azure Web作业控制台,它引用了Windows Azure管理库。 我尝试使用公共设置方法validation我的应用。 该程序在我的本地工作正常,但在使用X509Certificates错误的Azure Web作业上失败。 这就是我为网络工作计划所做的工作。 从https://windows.azure.com/download/publishprofile.aspx下载发布设置文件 在控制台应用程序上,通过从设置文件中复制并粘贴subscriptionId和cert字符串来创建凭证。 new CertificateCloudCredentials( subscriptionId, new 509Certificate2(Convert.FromBase64String(base64EncodedCertificate))); 在Azure Web Job上部署并尝试“按需运行”。 错误 at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) at System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob(Byte[] rawData, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx) at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte[] rawData, Object password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] data) at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData) 执行时出现exception: System.Security.Cryptography.CryptographicException, The system cannot find the file specified.

删除所有目录权限

在C#(2.0)中如何删除目录的所有权限,因此我可以限制访问权限。 我将向一组有限的用户添加访问权限。

服务层(.NET应用程序)中的授权和用户信息

我目前正在使用.NET环境中的企业应用程序(n-layered),我想知道在BussinessLayer(BL)中管理身份validation/授权+数据过滤的最佳方法。 我们将使用来自多个接口(ASP.NET应用程序和Web服务)的BL,我认为我的ServiceLayer应该完成这项工作,但我找不到最好的方法。 我想它可能是这样的:(1)用户可能使用FormsAuthentication进行身份validation(ASP.NET Web客户端)。 (2)ASP .NET代码(Controller / CodeBehind)实例化服务以完成一些用户案例,以某种方式传递“用户”。 (3)服务方法检查“用户”是否存在(认证)和他的角色(授权)以validation他是否可以调用该方法。 如果未经过身份validation或授权,则会引发exception。 (4)服务使用存储库+其他服务+完成工作所需的任何服务。 如果需要某种细粒度过滤(例如,用户仅对某些项目具有权限),则服务会自动应用它。 我想要的是将ServiceLayer与’web stuff’隔离(不访问会话…),但是谁知道User调用其方法来正确操作。 此外,我不知道如何以良好的方式将该工作与ASP .NET身份validation相匹配……我正在考虑在服务ctor中总结“用户”,以便其方法具有所需的“上下文”,可以那工作?…我会很感激一些迹象或现有的代码片段。 谢谢您的帮助…

将数据放入cookie中是否安全?

我正在使用asp.net mvc 2.0,我想知道将信息放入cookie有多安全? 就像我在我的cookie中放入一个加密的表单身份validation票据,这样我可以将那些可能敏感的信息放在那里吗? string encryptedTicket = FormsAuthentication.Encrypt(authTicket) HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); 就像我没有存储密码或类似的东西,但我想存储UserId,因为目前每次用户向我的网站发出请求时,我必须进行查询并获取用户Userid,因为我的数据库中的每个表都需要你使用userId获取正确的行。 所以这些开始快速加起来所以我宁愿拥有它,如果用户被认证一次,那就是它,直到他们需要再次重新认证。 如果我将存储此userId,我可以将如此多的请求保存到数据库。 然而,我不希望它以明文forms出现,因为潜在的人可能会使用它来尝试从数据库中获取一行,而实际上它们不应该存在。 显示身份validation使用的加密有多好?

CNG,CryptoServiceProvider和HashAlgorithm的托管实现

所以我想知道哈希算法的各种实现之间是否存在任何重大差异,例如以SHA系列算法为例。 它们每个都有3个实现,1个托管代码和2个围绕不同本机加密API的包装器,但使用它们之间有什么主要区别吗? 我可以想象包装器版本可以具有更高的性能,因为它在本机代码中执行,但是他们都需要执行完全相同的计算,从而提供相同的输出,即嘿是可互换的。 它是否正确? 例如,SHA512CNG无法用于XP SP2(文档错误),但SHA512MANAGED可以。 @Maxim – 谢谢,但不是我要求的。 我问的是,使用给定哈希算法的Managed / CryptoServiceProvider / CNG实现,除了可能的性能之外是否存在任何差异。 使用.NET 3.5,您可以获得具有三种实现的所有哈希算法,因此 SHA512Managed SHA512CryptoServiceProvider SHA512Cng 后两者是本机API的包装器。 例如,对于所有SHAxxx实现都是如此。

在代码中输入密码的方法

我有一些代码需要使用提升的权限运行(更多我希望我的其余代码运行)。 我有我的代码设置模拟工作,但它需要用户名,域名和密码。 由于我的代码在C#.net中,我知道密码可以由任何足够坚定的人找到。 有没有办法在我的代码中加密密码? 或者以其他方式保护此密码并仍然可以将其传递? 这是我要调用的代码: using (new Impersonator(“UserNameGoesHere”, “DomainNameGoesGere”, “Password Goes Here”)) { uint output; NetUserAdd(AUTHENTICATION_SERVER, 1, ref userinfo, out output); return output; } 我想要一个示例,说明如何解决此问题,以便不以纯文本显示我的密码。 我正在使用Visual Studio 2008,.NET 3.5 SP1,并在Windows Server 2003上运行。

C#中是否可以使用缓冲区溢出漏洞?

假设C#程序仅使用托管的.NET代码,是否可能在该程序中出现缓冲区溢出安全漏洞? 如果是这样,这种脆弱性将如何可能?

AES加密和C#

从我的阅读中我不确定AES是否是一种可以使用不同长度密钥或一系列类似算法的单一标准化算法? 我的意思是,如果我发现任何2个AES实现采用128位密钥,我是否应该相信它们的工作方式相同(除了错误)? 特别是在.Net / C#中,我很困惑为什么有两个抽象基类System.Security.Cryptography.Aes : System.Security.Cryptography.AesCryptoServiceProvider和System.Security.Cryptography.AesManaged 。 然后似乎AES和Rijndael之间有区别/重叠,.NET有Rijndael和RijndaelManaged类,以及RijndaelManagedTransform 所有这些之间的区别是什么? 我注意到AES类似乎只存在于.NET 3.5之后,而Rijndael从1.0开始就存在 对不起,如果这些都是愚蠢的问题,除了安全散列函数之外,我是加密的新手。

使用C#获取服务器和映射驱动器的ACL列表

我们IT团队的生产变更实施人员的任务是审查我们集团中所有各种对象的安全性,主要是为了确保离开我们的员工或已转移到其他组的人员不再能够访问我们的服务器共享我们最近完成了SQL部分,我们有一个可重复使用的脚本,可以每年运行一次(或者我们提出的任何频率)。 它工作得很好,我们在10分钟左右的服务器上审核了20个数据库,只需几分钟。 现在,对于服务器的东西。 我有一个使用.NET 2.0在C#中编写的应用程序,它将递归扫描目录列表并将ACL转储到文本文件中。 这很好用。 在本地机器上。 UNC和映射路径不起作用,我得到以下exception消息:该进程不具有此操作所需的“SeSecurityPrivilege”权限。 在这一行: DirectorySecurity DirSec = di.GetAccessControl(AccessControlSections.All); 其中di是从DirectoryInfo []数组枚举的DirectoryInfo对象。 我们不太可能被授予SeSecurityPrivilege特权。 但是我不认为这是必要的。 我可以打开文件夹并右键单击属性,然后单击安全选项卡并在GUI中查看它。 我也应该能够以编程方式访问它。 有关如何更改此部分代码以获取目标文件夹权限的任何想法? private void CheckSecurity(DirectoryInfo[] DIArray) { foreach (DirectoryInfo di in DIArray) { DirectorySecurity DirSec = di.GetAccessControl(AccessControlSections.All); string sAccessInfo = string.Empty; foreach (FileSystemAccessRule FSAR in DirSec.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount))) { sAccessInfo += GetAceInformation(FSAR); } if (sAccessInfo != string.Empty) […]

Asp.Net使用Active Directory中的安全组进行基于角色的身份validation

我正在尝试做一些简单的事情(我想) – 使用我们域中的Active Directory组使用基于角色的安全性来保护我的应用程序。 具体来说,我需要显示/隐藏页面上的项目,具体取决于当前登录的用户是否是Active Directory中domain\groupA一部分。 出于某种原因,很难找到有关使用Active Directory的信息。 我似乎发现的所有内容都详细介绍了使用角色使用基于表单的身份validation,或者它使用数据库来存储信息。 我想要做的就是在Active Directory中使用我们已经概述的安全结构。 有人可以解释我需要什么吗? 我需要: web.config web.config IIS设置为Windows身份validation if (User.IsInRole(@”domain\groupA”)){ //do stuff }在我的页面中? 我还缺少什么? 什么? 因为它不起作用。 嘿嘿。 感谢你的帮助。