Win 8 加密解密操作,运行时保存值(Session)



今天主要学习了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、设计界面:

复制代码
    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <Button Content="OK" HorizontalAlignment="Left" Margin="535,65,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.92,0.489" Click="OK_Click"/>
        <TextBox x:Name="sessionTxt" HorizontalAlignment="Left" Margin="277,65,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" Width="234"/>
        <TextBlock HorizontalAlignment="Left" Margin="0,65,0,0" TextWrapping="Wrap" Text="请输入Session的值" FontSize="30" VerticalAlignment="Top"/>
        <Frame x:Name="curFrame"   Margin="10,135,0,0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>

    </Grid>
复制代码

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功能,当程序退出时,值消失。只有在运行时才保存值。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值