首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >设置PasswordBox的初始值

设置PasswordBox的初始值
EN

Stack Overflow用户
提问于 2015-08-18 23:35:04
回答 2查看 8K关注 0票数 3

我想知道,对于PasswordBox控件所涉及的所有安全性,这是否是可能的:

我有一个XAML表单(C#/WPF),用户将在其中配置数据库访问。在这种形式下,我使用一个PasswordBox来获取Server用户密码。

由于这些数据保存到磁盘以供将来使用(在pasword保护的Server数据库文件中),在第一次运行时没有设置密码,如果用户返回并需要编辑SQL连接,那么可能会有一个密码保存在以前的配置中(除非他使用Windows身份验证而不是SQL用户身份验证)

因此,我希望在第一次运行时显示一个空的PasswordBox,但是如果已经设置了密码,当用户返回时,我希望显示X号'*‘(指示密码已经到位。

因为PasswordBox.Password是不可绑定的,所以我只能选择总是显示它为空,或者总是显示一个固定数目的“*”(通过设置一个默认密码,这个密码实际上并不代表真正的密码)。

有没有其他的选择(当然,除了注入绑定的PasswordBox帮助程序-我不想走这条路,因为我可能没有考虑到MS选择不将它绑定到SecureString上)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-19 17:29:24

您可以从文件中读取密码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//Storing the Password in String.
string pwd = "Password Read from the file";
PasswordBox.Password = pwd;

因此,当应用程序第一次打开并且文件中没有任何密码时,它将显示空的PasswordBox。同样,当用户已经设置了密码时,将在文件中找到密码,并将其加载到PasswordBox中。

票数 5
EN

Stack Overflow用户

发布于 2015-08-19 00:18:40

您可以为PasswordBox提供此行为,以便在MVVM中启用绑定。

PasswordBoxBehavior.cs

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class PasswordBoxBehavior : Behavior<PasswordBox>
{
    public bool ResetPassword
    {
        get { return (bool)GetValue(ResetPasswordProperty); }
        set { SetValue(ResetPasswordProperty, value); }
    }

    // Using a DependencyProperty as the backing store for ResetPassword.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty ResetPasswordProperty =
        DependencyProperty.Register("ResetPassword", typeof(bool), typeof(PasswordBoxBehavior), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, OnResetPasswordChanged));

    static void OnResetPasswordChanged(DependencyObject depObj, DependencyPropertyChangedEventArgs e)
    {
        PasswordBoxBehavior behavior = depObj as PasswordBoxBehavior;
        PasswordBox item = behavior.AssociatedObject as PasswordBox;
        if (item == null)
            return;

        if ((bool)e.NewValue)
            item.Password = string.Empty;

        behavior.ResetPassword = false;
    }

    private bool isRoutedEventHandlerAssign;
    public string Text
    {
        get { return (string)GetValue(TextProperty); }
        set { SetValue(TextProperty, value); }
    }

    // Using a DependencyProperty as the backing store for Text.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty TextProperty =
        DependencyProperty.Register("Text", typeof(string), typeof(PasswordBoxBehavior), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, OnTextChanged));

    static void OnTextChanged(DependencyObject depObj, DependencyPropertyChangedEventArgs e)
    {
        PasswordBoxBehavior behavior = depObj as PasswordBoxBehavior;
        PasswordBox item = behavior.AssociatedObject as PasswordBox;
        if (item == null)
            return;

        if (item.Password != e.NewValue as string)
        {
            item.Password = e.NewValue as string;
        }

        if (!behavior.isRoutedEventHandlerAssign)
        {
            item.PasswordChanged += (sender, eArg) =>
            {
                behavior.Text = item.Password;
            };
            behavior.isRoutedEventHandlerAssign = true;
        }
    }

    public PasswordBoxBehavior()
    {
    }
}

使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<PasswordBox>
    <i:Interaction.Behaviors>
        <bh:PasswordBoxBehavior 
            Text="{Binding UserPassword}"
            ResetPassword="{Binding IsResetPassword}" />
    </i:Interaction.Behaviors>
</PasswordBox>

哪里

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:bh="clr-namespace:<some namespace>;assembly=<some assembly>"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32089243

复制
相关文章
使用 React 和 ethers.js 构建DApp
scaffold-eth[2] 因为引入内容太多了,对于我来说太复杂了, 不知道大家有没有同感,找到一篇使用 React 开发 DApp 的非常简单入门教程。翻译一下.
Tiny熊
2022/11/07
5.5K0
使用 React 和 ethers.js 构建DApp
数字藏品NFT的开发框架
数字藏品NFT(非同质化代币)的开发框架涉及区块链技术、智能合约、存储解决方案、用户交互等多个方面。以下是一个完整的数字藏品NFT开发框架,涵盖从技术选型到部署上线的关键步骤。
数字孪生开发者
2025/01/26
1030
数字藏品NFT的开发框架
浅谈如何定义和调用Python的函数
本文主要介绍了如何定义和调用Python函数。首先介绍了函数的概念和作用,然后详细讲解了如何定义函数和调用函数,最后列举了一个例子来加深理解。
企鹅号小编
2018/01/03
2K0
浅谈如何定义和调用Python的函数
shell中调用python函数,发送邮件
一、shell中调用python函数1.邮件正文是框架自带的生成的报告 2.邮件附件是第三方类库生成的炫酷的报告看板 send_email.pyimport refrom email.mime.application import MIMEApplicationfrom email.mime.multipart import MIMEMultipartfrom smtplib import SMTP_SSLfrom email.header import Headerimport schedulefr
懿曲折扇情
2022/08/24
8420
shell中调用python函数,发送邮件
如何使用 ethers.js 监听待处理交易
如果你喜欢观看而不是阅读,这里有一个视频指南:https://www.youtube.com/embed/YjQj6uk9M98
Tiny熊
2022/11/07
2.8K0
如何使用 ethers.js 监听待处理交易
Js 使用new关键字调用函数和直接调用函数的区别
var friend=new Person("Nicholas",29,"Software Engineer");
大道七哥
2019/09/10
3.7K0
Js   使用new关键字调用函数和直接调用函数的区别
solidity智能合约如何实现跨合约调用函数
比如现在有一个需求、我需要通过外部合约获取BRC20 token的总交易量。那么我需要在brc20的转账函数里面做一些调整,主要是两个函数内统计转移量。然后再提供外部获取函数。
终有链响
2024/07/29
1180
solidity智能合约如何实现跨合约调用函数
云函数之间互相调用实现邮件发送
很多时候,我们会面临在小程序的后台实现多重功能,比如用户管理、日志分析、数据排序等,不同的功能之间还会相互调用。如果把这些功能都写到一个云函数里,会造成云函数逻辑过于复杂,执行速度较慢等问题。此时,我们可以使用微信提供的SDK “wx-server-sdk” ,很方便的实现函数之间的调用。把功能函数拆分成一个个独立的云函数,会有很多好处:
Mason-Serverless
2018/11/20
11.7K1
如何在React.js中使用Shadcn/UI
学习如何在React.js中使用Shadcn/UI构建可自定义且轻量的界面。了解如何将其与Apipost集成,以实现高效的API管理和测试。非常适合希望提升React.js项目的开发者!
用户11531559
2025/02/28
1050
函数的定义和调用
Golang是一门强类型语言,函数是Golang中的基本构建块之一。在Golang中,函数可以定义返回值、参数、变量和常量等内容,并通过调用来执行特定的任务。本文将全面介绍Golang中函数的定义和调用,包括函数签名、不定长参数、闭包和匿名函数等,同时提供完整的代码示例。
用户1413827
2023/11/28
1400
函数的定义和调用
1.函数的定义和调用 1.1函数的定义方式 方式1 函数声明方式 function 关键字 (命名函数) function fn(){} 方式2 函数表达式(匿名函数) var fn = function(){ 方式3 new Function() var f = new Function('a', 'b', 'console.log(a + b)'); f(1, 2); ​ var fn = new Function('参数1','参数2'..., '函数体') 1.2函数的调用方式 普通函数
梨涡浅笑
2020/10/27
8810
函数的定义和调用
image.png
清出于兰
2022/05/11
9640
函数的定义和调用
函数的定义和调用
1.1函数的定义方式 方式1 函数声明方式 function 关键字 (命名函数) function fn(){} 方式2 函数表达式(匿名函数) var fn = function(){} 方式3 new Function( '参数1', '参数2',' 函数体'); var f = new Function('a', 'b', 'console.log(a + b)'); f(1, 2); console.1og(f instanceof Object ); //instanceof
星辰_大海
2020/10/26
1.5K0
函数的定义和调用
Solidity 智能合约开发 - 玩转 ethers.js
在之前的《Solidity 智能合约开发 - 基础》中,我们学习了 Solidity 的基本语法,并且了解了可以通过 Brownie 与 HardHat 等框架进行调试。而另一篇《Solidity 智能合约开发 - 玩转 Web3.py》中我们也通过 Web3.py 直接与我们本地的 Ganache 节点进行交互了。
pseudoyu
2023/04/11
1.1K0
Solidity 智能合约开发 - 玩转 ethers.js
Lua函数的冒号调用和点调用
冒号定义函数中的self指向函数所属表对象,即self是table类型,通过self表可以:访问挂载在该表下的所有冒号定义函数 如,有定义A={},A:b() A:c();函数b,c都是冒号定义函数,在b,c函数内部self是地址指向A的表,在b函数中可以通过self:c()来调用c函数,同理在c函数中也可以通过self:b()来调用b函数 代码示例:
bering
2020/03/19
3.4K0
oracle函数的调用应使用execute命令_matlab函数调用
之前一直使用的MySQL数据库,第一次接触Oracle就用到了函数和存储过程,今天跟大家分享一下使用过程.
全栈程序员站长
2022/10/04
2.2K0
oracle函数的调用应使用execute命令_matlab函数调用
RISC-V 函数调用约定和Stack使用
不同的处理器指令集不一样,而汇编语言中都是一条条指令,所以不同处理器对应的汇编语言必然不一样。
大忽悠爱学习
2023/10/11
1.1K0
RISC-V 函数调用约定和Stack使用
如何禁止函数的传值调用
按照参数形式的不同,C++应该有三种函数调用方式:传值调用、引用调用和指针调用。对于基本数据类型的变量作为实参进行参数传递时,采用传值调用与引用调用和指针调用的效率相差不大。但是,对于类类型来说,传值调用和引用调用之间的区别很大,类对象的尺寸越大,这种差别越大。
恋喵大鲤鱼
2018/08/03
2.8K0
如何在Vue中使用云开发的云函数,实现邮件发送
云开发的云函数能够让我们无需购买和管理服务器,就能够实现一些前端做不了,必须在服务端做的复杂操作,让我们大大降低了运维成本。本篇将会为您讲解,如何在前端主流框架Vue中使用云开发的云函数。 通过本篇您将可以学习到: 如何创建云开发环境 如何在Vue中使用云开发 如何在Vue中利用云开发的云函数,实现邮件的发送 1.创建云开发环境 打开云开发控制台地址:https://console.cloud.tencent.com/tcb,点击新建云开发环境 创建云开发环境 创建后进入控制台首页,复制环境ID保
腾讯云开发TCB
2020/09/14
3.7K0
Web3.0对前端很友好?
最近 web3.0 的呼声真的是越来越高,也越来越疯狂。对于我们前端来说,我们需要具备什么技术呢?
程序猿川子
2022/12/13
1.1K0
Web3.0对前端很友好?

相似问题

搜索大小写不敏感

13

大小写敏感的PHP搜索?

12

使用敏感替换进行不区分大小写的vim搜索

20

不区分大小写,但敏感

10

如何搜索elasticsearch大小写不敏感

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文