频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

理解ASP.NET 2.0中的单点登录

来源:pcdog 作者:佚名 出处:巧巧读书 2008-02-18 进入讨论组

这个样例代码并没有被加密,并且它不会被发布到服务器上。因为处于安全考虑,发布到服务器的<machineKey>的加密是非常重要的。你可以在清单2中看到加密后的<machineKey>。
  清单 2: web.config 中加密后的machineKey

<machineKeyconfigProtectionProvider="RsaProtectedConfigurationProvider"> <EncryptedDataType="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#"> <EncryptionMethodAlgorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" /> <KeyInfoxmlns="http://www.w3.org/2000/09/xmldsig#"> <EncryptedKeyxmlns="http://www.w3.org/2001/04/xmlenc#"> <EncryptionMethodAlgorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" /> <KeyInfoxmlns="http://www.w3.org/2000/09/xmldsig#"> <KeyName>Rsa Key</KeyName> </KeyInfo> <CipherData> <CipherValue> lm3mfPX/94Zm3HgdbsmKiIxbrWM14t3/ugxs40BFOAHbIaCtwQ3gVQusFtOFVUoNVny01kgBCeh10rVEId djNZ/8luBNoCbHm8OLjgPLHVrT+G0c/LRpESJk2ni/Jy2sWKXlgejgSQ1W5NE53GZtG3s9hu+nk4OWxntS 6z3v7AM= </CipherValue> </CipherData> </EncryptedKey> </KeyInfo> <CipherData> <CipherValue> BCEGUV/dh1Imbcm5vn0Kn8NrD+EX+KemenR7x+VekwT1ZO6y5+jRyF4RDWMJCfJ1jHC36+MAfCdHuXN0rP B6hu5YUtX9VA5q5N0NGrs9AIpG+0ihuuS3HDzQe3P6nlI30m1h0pmL1yJBovY0i6fbCA6++GT2MdwCLERk +PVWmoq7p1q97n5pNzNqhVKCX45lhS5ySVS+MjJXVeTrcatftpvaUcjLsNcL2kMerzf5w/SU3AbLEuY04w dgYWX5tWzxqeUcghdlWLD0tQi8qyyfVfzXPYozR5sspWHdgqmAycrACHN2dcONWPjT4BanRWb1ouKuP8K+ 0CEFE/Hj2ChpYw== </CipherValue> </CipherData> </EncryptedData> </machineKey>
  你可以通过Configuration、SectionInformation两个类来加密你的配置文件。为了加密和解密你的<machineKey>让我们来写一些代码吧。SectionInformation类有一个方法ProtectSection(),可以得到一个描绘Protection Provider的字符串比如"RSAProctedConfigurationProvider",并且加密这个配置节。这里还有一个Boolean类型的属性ForceSave,当需要配置类的save方法保存配置文件时需要将它设置为true。这里有"Encryption.aspx"页面的代码,页面中包含有两个按钮来加密和解密配置文件。

  清单 3:web配置文件的加密代码
protected void btnEncrypt_Click(object sender, EventArgs e) { try { Configuration config = WebConfigurationManager.OpenWebConfiguration( "/Aspalliance1 "); ConfigurationSection machineKeySection = config.GetSection( "system.web/machineKey"); machineKeySection.SectionInformation.ProtectSection( "RSAProtectedConfigurationProvider"); machineKeySection.SectionInformation.ForceSave = true; config.Save(); Response.Write("<h2 style='color:red'>Encryption Succeed</h2>"); } catch (Exception ex) { Response.Write("<h2 style='color:red'>Error while encrypting</h2><br/>"); Response.Write(ex.Message); } }
静态页面:http://www.qqread.com/aspdotnet/k397040.html 更多文章 更多内容请看.NET移动与嵌入式技术.NET开发手册ASP.NET教程专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章