声明式安全使程序员可以直接在组合代码的元数据中为组合指定安全需求 。许可请求和所有其它形式的声明式安全是在代码中是作为定置属性指定的 。类,属性和方法的注释用于优化许可 。例如,声明式安全可用于类的调用者在调用方法前检查调用者是否被已知地行商签名过,或有一个特定的强名 。
由于声明属性是组合元数据的一部分 , 所以组合的安全需求易于辨别 。可以使用工具对组合进行扫描,以发现哪些方法需要某些许可,哪些方法断言了某些许可 。
当被请求的活动和许可在编译时是知道时,声明式检查可作为选择的解决方案之一 。例如,如果方法总是检查对C:\temp的写访问许可,那么许可检查就会从声明中得到好处 。另一方面,如果被请求的具有访问权的位置发生了变化,那么强迫式安全也许是一个比较好的解决方案 。
强迫式安全
强迫式安全直接在代码中实现 。程序员通过程序采取安全活动,并且根据安全堆栈的状态决定是给予还是拒绝许可 。例如,当一个方法请求访问一个特定的文件时,如果调用者(或方法的任何一个调用者)没有被给予必需的许可权限,那么请求失败 。因为强迫式安全是通过程序实现的,所以满足了动态需求 。如果你需要对一个特定文件的访问许可,但该许可还要根据其它信息发生变化,那么,强迫式安全就是可选的解决方案 。
总结
.NET Framework安全迎合了这种事实:软件向多样化的移动组件发发展,并根据这种事实提供保护 。在一个细化的、可扩展的策略和许可系统下,用户能够运行功能强大的代码,而同时减少相关的风险 。在没有运行时对用户作出信任决定时,管理员可以在各个级别创建强壮的安全策略 。策略是完全可定置的 。开发人员能够集中解决应用程序逻辑,而不用关心核心的安全问题(它由CLR透明地处理) 。然而,开发人员可以在任何时候扩展安全模型 。
同样的字符串,.net用SHA1加密出来的结果和网站的加密结果不同 。求解在SQL Server 2005下自带的函数HashBytes(),此函数是微软在SQL Server 2005中提供的,可以用来计算一个字符串的MD5和SHA1值 , 使用方法如下:
--获取123456的MD5加密串
select hashbytes('MD5', '123456') ;
--获取123456的SHA1加密串
select hashbytes('SHA1', '123456') ;
有了这个函数可以在SQL Server中为字符串进行加密,但是HashBytes() 函数的返回结果是VarBinary类型(以 0x 开头 16 进制形式的二进制数据) 。通常情况下 , 我们需要的都是字符串型的数据 , 很多人首先想到的可能就是用CAST或Convert函数将VarBinary转换为VarChar,但这样转换后的结果会是乱码,正确转换VarBinary可变长度二进制型数据到16进制字符串应该使用系统内置函数sys.fn_VarBinToHexStr()或sys.fn_SqlVarBaseToStr(只在sqlserver2005以后的有),如下所示:
select sys.fn_VarBinToHexStr(hashbytes('MD5', '123456'))
然后就可以截取需要的部分:
set right(sys.fn_VarBinToHexStr(hashbytes('MD5','123456')),32)
为MD5加密串 。
asp.net中怎么画一些随机点 , 用VB.NET的namespace Linfo
{
public partial class VerifyCode : BasePage
{
public Random rand = new Random();
protected void Page_Load(object sender, EventArgs e)
{
string strListCode = "0123456789abcdefghigklmnopqrstuvwxyz";
int num = 0;
string strNum = num.ToString();
string strListNum = "";
for (int i = 0; i = 3; i++)
{
num = this.rand.Next(1, 36);
strListNum = strListNum + strListCode.Substring(num - 1, 1);
}
this.Session["checkcode"] = strListNum;
- redis的热点数据缓存 redis热点数据切换
- 如何修改戴尔服务器的IP地址? 戴尔服务器ip地址怎么改
- mysql中ext
- 优惠券功能的业务流程设计图谱 优惠券redis处理
- redis通配符的使用
- redis是开发工具吗 redis的开发人是谁
- mongodb查询字符串字段包含 mongodb查询字段不为空
- mysql备份一个表的数据 备份一个mysql库
- mysql中删除记录的命令 mysql删除中继日志
- mysql 判断 mysql的判断语句
