小编ore*_*enk的帖子

c#将事件的参数从另一个类传递到主类

我有一个主 (Form1) 类和一个处理所有串行通信 (ComPort) 的第二个类

当通过串行端口(事件)接收到新数据时,我想将其传递给 Form1 并对这些数据进行一些操作。小例子:从接收到的数据创建长字符串

表格1.cs

public partial class Form1 : Form  
{  
//Creating instance of SerialCommunication.
....
....
string receivedString = ""; //Here I will store all data

public void addNewDataMethod(string newDataFromSerial)
{ 
  receivedString = receivedString + newDataFromSerial;
  MessageBox.Show(receivedString);
}
Run Code Online (Sandbox Code Playgroud)

}

串行通信.cs

public partial class SerialCommunicationPort   
    {  
      constructor()  
      {      
       .... //open serial port with the relevant parameters  
       ComPort.DataReceived += new SerialDataReceivedEventHandler(ComPortBufferRead);//Create Handler  
      }  
     public void ComPortBufferRead(object sender, SerialDataReceivedEventArgs e)  
     {  
      //create array to store buffer data …
Run Code Online (Sandbox Code Playgroud)

c# events class winforms

3
推荐指数
1
解决办法
1600
查看次数

如何检查密码复杂性?

我正在使用 PowerShell 创建本地用户。我需要从键盘获取输入:用户名和密码。要获取密码,我可以使用以下方法之一:

$user_details = Get-Credential
Run Code Online (Sandbox Code Playgroud)

或者

$pass = Read-Host -assecureString "Please enter your password"
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我都会得到加密的密码变量System.Security.SecureString。在这两种情况下,当我尝试创建用户时,

New-LocalUser -Name $username -Password $pass
Run Code Online (Sandbox Code Playgroud)

我收到错误消息,提示密码不复杂。

New-LocalUser:无法更新密码。为新密码提供的值不满足域的长度、复杂性或历史记录要求。”

由于密码是加密的,(System.Security.SecureString) 我无法知道密码的复杂性。如何强制用户输入符合复杂性规则的密码?

(使用未加密的密码对我来说不是一个好的解决方案)

更新:在几个与良好解决方案相关但不满足我的安全要求的答案之后,我想重新表述一下:

如何检查已存储在对象中的密码复杂性:System.Security.SecureString(无需解密)

powershell credentials password-encryption powershell-5.0 windows-server-2016

2
推荐指数
1
解决办法
2万
查看次数