博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Win 8 加密解密操作,运行时保存值(Session)
阅读量:7237 次
发布时间:2019-06-29

本文共 2632 字,大约阅读时间需要 8 分钟。

   今天主要学习了Win 8 加密解密操作,运行时保存值(Session)的功能,我这里只是学习写了一些简单的东西,

并记录下,方便自己以后再次学习。希望园子里的朋友能多多指教,我也是一名Win 8 初学者。

一、加密解密操作,要用到Windows.Security.Cryptography.DataProtection命名空间下的DataProtectionProvider类,

Win 8 加密解密操作关键代码:inputFile是要未加密的文件,outputFile是加密后的文件(保存/生成出来的新文件)。

private async Task EncryptAsync(IStorageFile inputFile, IStorageFile outputFile)        {            if (inputFile == null || outputFile == null) return;            try            {                IRandomAccessStream inputstr = await inputFile.OpenAsync(FileAccessMode.Read);                IRandomAccessStream outputstr = await outputFile.OpenAsync(FileAccessMode.ReadWrite);                DataProtectionProvider dp = new DataProtectionProvider("LOCAL=user");                await dp.ProtectStreamAsync(inputstr, outputstr);                inputFile = null;                outputFile = null;            }            catch (Exception) { }                   }

 

inputFile是要已加密的文件,outputFile是空文件(保存/生成出来的新文件)。

private async Task DecipheringAsync(IStorageFile inputFile, IStorageFile outputFile)        {            if (inputFile == null || outputFile == null) return;            try            {                IRandomAccessStream inputstr = await inputFile.OpenAsync(FileAccessMode.Read);                IRandomAccessStream outputstr = await outputFile.OpenAsync(FileAccessMode.ReadWrite);                DataProtectionProvider dp = new DataProtectionProvider();                await dp.UnprotectStreamAsync(inputstr, outputstr);                inputFile = null;                outputFile = null;            }            catch (Exception){}                 }

 

 二、运行时数据的保存,类似于Asp.net的Session功能。

1、设计界面:

2、关键代码:使用Windows.ApplicationModel.Core.CoreApplication类下的Properties保存值。 然后Frame指向SecondPage.xaml页。

private void OK_Click(object sender, RoutedEventArgs e)        {            if (string.IsNullOrEmpty(sessionTxt.Text) == false)            {                Windows.ApplicationModel.Core.CoreApplication.Properties["firstText"] = sessionTxt.Text;                curFrame.Navigate(typeof(SecondPage));            }        }

3、获取保存的值。在SecondPage.xaml页中获取保存的值。

private void GetSessionValue()        {            if (Windows.ApplicationModel.Core.CoreApplication.Properties.ContainsKey("firstText"))            {                SessionTxt.Text = Windows.ApplicationModel.Core.CoreApplication.Properties["firstText"].ToString();            }        }

效果图:

 

保存值总结:保存值类似于Asp.net的session功能,当程序退出时,值消失。只有在运行时才保存值。 

本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2012/10/24/2735922.html,如需转载请自行联系原作者

你可能感兴趣的文章
React-Router看这里
查看>>
打造一个通用的 RecyclerView Adapter
查看>>
基于redis的秒杀
查看>>
js如何实现上拉加载更多...
查看>>
.Net Core Logger 实现log写入本地文件系统
查看>>
Java Servlet关键点详解
查看>>
深入分析luait反编译之luajit-decomp
查看>>
从头编写 asp.net core 2.0 web api 基础框架 (5) EF CRUD
查看>>
【我们一起写框架】MVVM的WPF框架(五)—完结篇
查看>>
学习ASP.NET Core Razor 编程系列十一——把新字段更新到数据库
查看>>
江山代有才人出 | 微软亚洲研究院建院二十周年
查看>>
Linux安装gitlab
查看>>
java源码-synchronized
查看>>
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 21 章 数据库角色_21.2. 角色属性
查看>>
《刻意练习》读后感
查看>>
DataWorks V2.0 系列公开课
查看>>
使用 logstash, elasticsearch, kibana 搭建日志分析系统
查看>>
Android Q 将获得大量的隐私保护功能
查看>>
《恋恋笔记本》观后感
查看>>
Spring源码剖析6:Spring AOP概述
查看>>