c# - process.start - パスワードとしてグローバル変数を使用する - "'string'から 'system.security.secureString'に変換できません。 -- c# フィールド と security フィールド と global-variables フィールド と process.start フィールド と securestring フィールド 関連 問題

C# - Process.Start - using global variable as password - "cannot convert from 'string' to 'System.Security.SecureString'












-1
vote

問題

日本語

ログインフォームを設計し、他のフォームで呼び出すことができる変数として保存するユーザー名とパスワードを設計しました(全体的なプログラムは、最初はユーザー名とパスワードとして実行したい。ログインフォームに入力してください。

このコードを使用して「グローバル変数」を作成しました。

<事前> <コード> class usernameGlobalVariable { public static string var = ""; } class passwordGlobalVariable { public static string var = ""; }

ログインフォームでは、このようにしてこれらのグローバル変数に入力されたユーザ名とパスワードを保存しました。

<事前> <コード> private void usernameTextBox_TextChanged(object sender, EventArgs e) { usernameGlobalVariable.var = usernameTextBox.Text; } private void passwordTextBox_TextChanged(object sender, EventArgs e) { passwordGlobalVariable.var = passwordTextBox.Text; }

プロセスを開始したい場合は、このコードを使用して呼び出します(ログイン形式で保存されているユーザー名とパスワードとして実行するため):

<事前> <コード> string fileName = "c:\hdatools\Ping2.exe"; string arguments = ""; string domain = "vantage"; private void Button2_Click(object sender, EventArgs e) { Process.Start( fileName, arguments, usernameGlobalVariable.var, passwordGlobalVariable.var, domain); }

主な誤りは行にあります passwordGlobalVariable.var, エラーは

を言う

引数4: 'string'から変換できません 'system.security.secureString'

安全な文字列に `passwordglobalvariable.var 'を変換するか、別の文字列をその内容を変数変数させ、その変数を安全な文字列としてレンダリングしようとしました。私はついにアイデアを使い果たしました。助けのために事前にありがとうございました。

英語

I designed a login form and wanted the username and password entered to be stored as variables I could call in other forms (overall program is a collection of .exe files and powershell scripts that I want to run as the username and password initially entered in my login form).

At the start of the program I created "global variables" using this code:

class usernameGlobalVariable     {         public static string var = "";     }     class passwordGlobalVariable     {         public static string var = "";     } 

In the login form I stored the username and password entered into these global variables this way:

private void usernameTextBox_TextChanged(object sender, EventArgs e)     {         usernameGlobalVariable.var = usernameTextBox.Text;     }       private void passwordTextBox_TextChanged(object sender, EventArgs e)     {         passwordGlobalVariable.var = passwordTextBox.Text;     } 

When I want to start a process I call it using this code (to run it as the username and password stored by the login form):

string fileName = "c:\hdatools\Ping2.exe"; string arguments = ""; string domain = "vantage"; private void Button2_Click(object sender, EventArgs e)     {      Process.Start(     fileName,     arguments,     usernameGlobalVariable.var,     passwordGlobalVariable.var,     domain);      } 

The main error I get is on the line passwordGlobalVariable.var, The error says

Argument 4: cannot convert from 'string' to 'System.Security.SecureString'

I've tried different ways to try to convert `passwordGlobalVariable.var' to a secure string, or to give another string variable its contents and then render that variable as a secure string. I've finally run out of ideas. Thanks in advance for the help.

</div
              
 
 

回答リスト

1
 
vote
vote
ベストアンサー
 

引数4: 'string'から変換できません 'system.security.secureString'

<コード> parallelPrefix6 は<コード> parallelPrefix7 で、<コード> parallelPrefix8 、外観:

です。 <事前> <コード> parallelPrefix9

だからそれを変更してください:

<事前> <コード> [2, 1, 0, 3]0

以降、<コード> 998877621 イベントハンドラを変更して、パスワードを変換して、パスワード<コード> [2, 1, 0, 3]2 に<コード> [2, 1, 0, 3]3

に変換します。 <事前> <コード> [2, 1, 0, 3]4

小さい side-note :c# 's 998877625 Wordの使用を控えてください。 com / en-gb / library / bb383973.aspx "rel =" nofollow "> <コード> [2, 1, 0, 3]6 contextualキーワード。

 

Argument 4: cannot convert from 'string' to 'System.Security.SecureString'

because var is a string and not a SecureString, look:

class passwordGlobalVariable {    public static string var = ""; } 

So change it to:

class passwordGlobalVariable {    public static SecureString var; } 

And later on, change your passwordTextBox_TextChanged event-handler to convert your password string into a SecureString:

private void passwordTextBox_TextChanged(object sender, EventArgs e) {    SecureString passWord = new SecureString();    foreach (char c in passwordTextBox.Text.ToCharArray())    {      passWord.AppendChar(c);    }      passwordGlobalVariable.var = passWord; } 

A small side-note: Refrain from using the var word because one can be confused with the C#'s var contextual keyword.

</div
 
 
         
         
1
 
vote

以下のコードは、文字列var:

からSecureStringを作成します。 <事前> <コード> [2, 1, 0, 3]7
 

The code below create a SecureString from the string var:

   SecureString passWord = new SecureString();    foreach (char c in var.ToCharArray())                   passWord.AppendChar(c); 
</div
 
 
   
   
0
 
vote
<事前> <コード> var secureUsername = new SecureString(); foreach (char c in usernameGlobalVariable.var) { secureUsername.AppendChar(c); } var securePassword = new SecureString(); foreach (char c in passwordGlobalVariable.var) { securePassword.AppendChar(c); }

これはあなたがprocessに渡すことができる2つのSecureStressを与えるでしょう.startメソッド

 
var secureUsername = new SecureString(); foreach (char c in usernameGlobalVariable.var) {     secureUsername.AppendChar(c); }  var securePassword = new SecureString(); foreach (char c in passwordGlobalVariable.var) {     securePassword.AppendChar(c); } 

This will give you two SecureStrings that you can pass into the Process.Start method

</div
 
 
 
 

関連する質問

2  ConvertTo-SecureStringキー指定された状態での使用には無効です  ( Convertto securestring key not valid for use in specified state ) 
スクリプトを特定のユーザーとして実行するときにエラーが発生しましたが、自分のユーザーアカウントとしては表示されません。これはWindows 2012R2上にあります。 PowerShellモジュールがインストールされ、しばらくの間使用されていましたが、別のアカ...

3  PowerShellとSecureStringクラス  ( Powershell and securestring class ) 
FTPサイトにアクセスしようとすると、プレーンテキストのパスワードを認証情報に使用し、正常に機能しますが、それが認証に失敗します。例: <事前> <コード> $pw = "mypw" $ftp = [system.net.ftpwebrequest] [sy...

1  電子メールのパスワードを保存して電子メールを送信するにはどうすればいいですか?  ( How to store the password of an email and use it to send an email ) 
C#を含む電子メールを送信する方法を知っています。それをするために、私はユーザーのユーザーとパスワードを知る必要があります。 私はパスワードのハッシュを保存するために、パスワードのハッシュを保存するためにパスワードを保存する方法についての基本的な知識を持って...

51  文字列を明示的にSecureStringに変換する方法  ( How to convert a string to securestring explicitly ) 
テキストボックスに入力されたテキストをC#。のSecureStringに変換することができます。 ...

6  セキュア文字列を使用してセキュリティを確保してください[重複]  ( Using secure string and keeping it secure ) 
この質問はすでにここで回答を持っています 閉じられた 6年前> そのため、.NETフレームワークは secureString ストリングを安全な方法で保存するためのクラス。しかし、情報を読み、それを使って仕事をするためにあなたはそれを...

18  Java SecureStringの相当  ( Java equivalent of securestring ) 
Javaの secureString.aspx 。 2018年に利用可能な実装はありますか? OWASP実装は、まれな文字配列であるため、まったく同じではありません。 .NET等価物は追加機能インスタンスを管理しないメモリと暗号化との間でインスタンスを取...

3  私はコマンドレットに秘密を帯びているようです  ( I cant seem to pass a securestring to my cmdlet ) 
コマンドレットを呼び出す関数を持っています <事前> <コード> Function connect-app([string]$host, [string]$user, [SecureString]$password, [switch]$passwordfile...

7  SecureStringを節約します  ( Saving a securestring ) 
私が取り組んでいるプログラムのために持っている特徴要求の1つは、資格情報のリストを保存することができるので、それらを共有することができます。この要求に触発された特定のユースケースは、Flaky Wanによって接続されたかなり良いLANで構成された大規模な企業ネ...

1  安全な文字列を連結する  ( Concatenating secure string ) 
PowerShellの変数と安全な文字列を使用して安全な文字列を連結することは可能ですか? 私たちのスタンドアロン環境(ドメインなし)のローカル管理者パスワードに使用される式を持っています。その数式の一部をファイルに安全に保存してから、それを取得し、それを通...

3  この状況でSecureStringを使用するとセキュリティが向上しますか?  ( Would using securestring in this situation improve security ) 
マイカスタム.NETプロセスは、現在のコンテキストとは異なるアカウントでドライブをマッピングします。パスワードは設定ファイルに保存され、DPAPIはマシンキーで暗号化されています。 コードは機能しますが、SecureStringの使用法が追加のセキュリティを提...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有