加密MachineKey

ASP.NET中设置 MachineKey可以很轻松的实现SSO,可以在所有ASP.NET站点中添加如下配置:
<machineKey validationKey="XXXXXX" decryptionKey="XXX" validation="SHA1" />
validationKey可以为视图状态、身份验证Cookie、Session等重要的信息添加杂乱信息以防止重要信息被篡改。
为了防止validationKey和decryptionKey以明文的方式进行显示,可以使用 ProtectSection方法对machineKey配置节进行加密。
1、在Web.config中添加原始的配置,如:
<machineKey validationKey="XXXXXX" decryptionKey="XXX" validation="SHA1" />
2、通过程序对 system.web/machineKey节进行加密和解密
加密方式如下:
            Configuration config  =  WebConfigurationManager.OpenWebConfiguration( " / " );
            ConfigurationSection machineKeySection 
=  config.GetSection( " system.web/machineKey " );
            machineKeySection.SectionInformation.ProtectSection(
" RSAProtectedConfigurationProvider " );
            machineKeySection.SectionInformation.ForceSave 
=   true ;
            config.Save();
解密方式如下:
            Configuration config  =  WebConfigurationManager.OpenWebConfiguration( " / " );
            ConfigurationSection machineKeySection 
=  config.GetSection( " system.web/machineKey " );
            machineKeySection.SectionInformation.UnprotectSection();
            machineKeySection.SectionInformation.ForceSave 
=   true ;
3、通过程序加密就会得到类拟:
         < machineKey configProtectionProvider = " RsaProtectedConfigurationProvider " >
            
< EncryptedData Type = " http://www.w3.org/2001/04/xmlenc#Element "
                xmlns
= " http://www.w3.org/2001/04/xmlenc# " >
                
< EncryptionMethod Algorithm = " http://www.w3.org/2001/04/xmlenc#tripledes-cbc "   />
                
            
</ EncryptedData >
        
</ machineKey >
这样的配置,你只要把这段配置复制到各个需要SSO的站点的Web.config就可以了,系统在运行过程中会自动进行解密
如果想变回原来的明文显示可以执行解密的相反过程就行
注意:其中的 OpenWebConfiguration("/");表示打开站点根目录下的web.config,其它情况可参考如下:
Using the Management API

转载于:https://www.cnblogs.com/chenjunbiao/archive/2008/01/28/1760220.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值