我有以下样式定义:
<!-- Border -->
<Style x:Key="MyControlBorder" TargetType="{x:Type Border}">
<Setter Property="BorderBrush" Value="DarkKhaki" />
<Setter Property="Background" Value="White" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="CornerRadius" Value="10" />
</Style>
<!-- TextBox -->
<Style x:Key="MyTextBox" TargetType="{x:Type TextBox}">
<Setter Property="Height" Value="30" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBoxBase}">
<Border Name="TextBoxBorder" Style="{StaticResource MyControlBorder}">
<ScrollViewer x:Name="PART_ContentHost"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- PasswordBox -->
<Style x:Key="MyPasswordBox" TargetType="{x:Type PasswordBox}">
<Setter Property="Height" Value="30" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Control}">
<Border Name="Border" Style="{StaticResource MyControlBorder}">
<ScrollViewer x:Name="PART_ContentHost" />
</Border>
</ControlTemplate>
</Setter.Value> …Run Code Online (Sandbox Code Playgroud) 在MSDN文档上PasswordBox.Password说:
获取Password属性值时,将密码作为纯文本显示在内存中.要避免此潜在的安全风险,请使用SecurePassword属性将密码作为SecureString获取.
所以我发送SecurePassword到我的视图模型的PasswordChanged事件,期望一切都是安全的,但如果我用Snoop检查我的应用程序,在PasswordBox的Password属性中,我看到我以纯文本输入的密码.这不会破坏使用SecurePassword的全部目的吗?我还应该做些什么来保护密码吗?
有没有人知道如何实现标准的气泡消息,当启用Caps Lock并且密码控件具有焦点时,该消息会警告用户?这是内置到.NET框架中,还是我需要编写自己的类来执行此操作?
这是一个非常直截了当的问题,我需要检测何时在Android Webview上打开默认的Remember密码弹出窗口(所以我可以确保我没有用任何其他组件覆盖它,或者至少把它带到前面)
非常感谢,这个社区对我非常有帮助.
如何在Windows Phone中显示带提示文本的密码框?
我试过了PasswordBox和Toolkit's PhoneTextBox.将这两者结合起来有什么特别的事吗?
每当我单击复选框时,如何取消屏蔽和屏蔽密码框中的密码?我正在使用 C# WPF 模板。
这是我的 .XAML 代码:
<PasswordBox x:Name="passwordBox_password" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" Margin="5" Height="25" />
<CheckBox x:Name="checkBox_showPassword" Grid.Row="3" Grid.Column="1" Margin="5,0,5,5" Content="show password" Checked="checkBox_showPassword_Checked" Unchecked="checkBox_showPassword_Unchecked" />
Run Code Online (Sandbox Code Playgroud)
这是我的 .CS 代码:
private void checkBox_showPassword_Checked(object sender, RoutedEventArgs e)
{
// what to do here ?
}
private void checkBox_showPassword_Unchecked(object sender, RoutedEventArgs e)
{
// what to do here ?
}
Run Code Online (Sandbox Code Playgroud)
或者在 WPF 中还有另一种方法吗?
在创建包含PasswordBox控件的WPF应用程序时,我尝试将其设置PasswordChar为显示"<"而不是"*".我写了以下代码:
<PasswordBox PasswordChar="<"></PasswordBox>
Run Code Online (Sandbox Code Playgroud)
使用此代码时,会报告以下错误:
错误1值"<"在属性中无效.
我想在 XAML 代码中绑定一个密码框。现在我发现\xc2\xb4t 不可能绑定它,因为你没有\xc2\xb4t 任何依赖属性。
\n\n就我而言,我的应用程序不需要任何安全性。我只是不想\xc2\xb4t 想要向用户显示明文。还有其他选项可以实现带有文本框等的密码框吗?
\n我TextBox在 Windows Phone 8.1 应用程序中使用用户输入控件。
如何在用户输入时隐藏字符?
我没有使用 aPasswordBox因为定义的InputScopeis"Number"在 a 中是不可能的PasswordBox。
在互联网上搜索解决方案时,我找到了唯一的方法,即TextBox在UserControl.
有没有更简单的方法来做到这一点而不创建任何UserControl?
以下是我的代码片段:
在 XAML 页面中:
<TextBox Text="{Binding CardNo, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
MaxLength="17"
x:Name="CardNoTextBox"
InputScope="Number"
Margin="70,5"
PlaceholderText="Enter Your Card Number"
TextChanged="CardNoTextBox_TextChanged"
BorderBrush="Gray"
BorderThickness="2"
FontSize="20"/>
Run Code Online (Sandbox Code Playgroud)
在后面的代码(xaml.cs)中:
private void CardNoTextBox_TextChanged(object sender, RoutedEventArgs routedEventArgs)
{
if (IsTextAllowed(CardNoTextBox.Text))
{
if (CardNoTextBox.Text.Length == 5)
{
if (CardNoTextBox.Text[4] != ' ')
{
string text = CardNoTextBox.Text.Insert(4, " ");
CardNoTextBox.Text = …Run Code Online (Sandbox Code Playgroud) 我最近已经问了几个问题PasswordBox,但问题的核心是,我需要一种非常安全的方法来将非常敏感的信息输入到我的.Net应用程序中.
开箱即用,WPF PasswordBox可以控制获取密码或其他敏感信息.为了安全起见,它SecureString通过SecurePassword属性提供了一个对象,在我看来,这个对象足以满足我的需求.但是,我在这个控件中看到了一个主要缺陷 - 它有一个Password属性,它是用户输入的内容,位于不安全的.Net字符串中.
我想假设如果我从未Password在我的应用程序中访问该属性,我的敏感信息的不安全版本将永远不会被生成并且必须被垃圾收集.没事.但是,由于字符串的安全形式的要点是保持值不受窥探过程(我假设)可以读取它们的.Net内存,可能同样的窥探,恶意代码只是寻找一个PasswordBox悬在其中的内存并找到一些访问该Password字段的方法,使得使用该SecureString值基本上没用?
我承认,我不知道这些漏洞是如何执行的.但是,如果问题是某些应用程序可能在.Net内存管理器/垃圾收集器中嗅探您的变量,那么我觉得他们所要做的就是访问PasswordBox控制对象,而不是字符串对象,这似乎是合理的.记忆,只需访问该Password属性.在这个难题中我可能会缺少什么?PasswordBox如果它包含Password明文属性,那么它是如何安全的?