ایس ایف ٹی پی کو .نیٹ میں بھیجیں اور وصول کریں

صفحہ تخلیق تاریخ :

ماحول

بصری سٹوڈیو
  • ویژیول سٹوڈیو کمیونٹی 2017
  • ویژیول سٹوڈیو کمیونٹی 2019
.نیٹ کور
  • 3.1
.نیٹ فریم ورک
  • 4
  • 4.8
SSH.NET
  • 2016.1.0

※ یہ دیگر ورژن میں کام کرتا ہے، لیکن یہ غیر مصدقہ ہے

پہلے تو

ایس ایف ٹی پی کے لیے ایک کلائنٹ پروگرام بنائیں تاکہ فائلیں .نیٹ فریم ورک (.نیٹ کور) میں بھیج یں اور وصول کریں۔ ایس ایف ٹی پی سے متعلق پروگرام .نیٹ میں معیاری نہیں ہیں۔ ہم SSH.NETفریق ثالثلائبریری استعمال کریں گے۔

SSH.NET کو حال ہی میں اپ ڈیٹ نہیں کیا گیا ہے، لیکن اس پروگرام پر عمل درآمد نسبتا آسان ہے۔ میں نہیں سمجھتا کہ اس کے استعمال کے بہت سے نقصانات ہیں کیونکہ یہ .نیٹ اسٹینڈرڈ کی بھی حمایت کرتا ہے۔

اس بار، ہم .نیٹ کور کنسول پروجیکٹ میں ایس ایف ٹی پی کی طرف سے فائلیں بھیجیں گے اور وصول کریں گے۔ SSH.NET بہت سے فریم ورک کی حمایت کرتا ہے، لہذا اسے کنسول کے علاوہ دیگر منصوبوں میں نافذ کیا جاسکتا ہے۔

پیشگی تیاری

  • ویژیول سٹوڈیو نصب ہونا ضروری ہے
  • آپ کے پاس ایس ایف ٹی پی پیش کار ہے تاکہ ایس ایف ٹی پی طرز عمل کی تصدیق کی جا سکے
  • ایک اکاؤنٹ ہے جس سے آپ ایس ایف ٹی پی سے جڑ سکتے ہیں
  • پاس ورڈ توثیق کرتے وقت ایس ایف ٹی پی سرورز پر پاس ورڈ توثیق اہل بنائیں
  • عوامی کلیدی توثیق کرتے وقت عوامی کلید کو ایس ایف ٹی پی سرور پر رکھیں اور کلائنٹ میں لوڈ ہونے کے لئے ایک نجی کلید (اوپن ایس ایس ایچ فارمیٹ) رکھیں۔

SSH.NET تنصیب کریں

ویژیول سٹوڈیو میں .نیٹ کور کنسول پروجیکٹ بنائیں۔ پروجیکٹ کا نام شنیٹ بیسک ہے۔

نیوگیٹ سے "SSH.NET" حاصل کرتا ہے۔

image

image

image

image

پیکیج شامل کر دیا گیا ہے۔

image

پاس ورڈ توثیق

پاس ورڈ توثیق کے لیے صارف نام اور پاس ورڈ سیٹ کرنے کے لیے پاس ورڈ توثیق ی طریقہ کلاس استعمال کریں۔

کنکشن انفو کلاس کو میزبان نام (جیسے sorceryforce.net یا 192.168.0.1) اور توثیقی طریقہ کار کے ساتھ سیٹ کریں جو آپ نے ابھی پیدا کیا ہے۔ اسے "اسفٹپ کلائنٹ" کلاس میں منتقل کریں۔

اسفٹپ کلائنٹ.کنیکٹ طریقہ دراصل کنکشن بناتا ہے، اور اگر یہ کامیاب ہو جاتا ہے تو یہ اگلے آپریشن اور ناکامی کی صورت میں استثنیٰ دیتا ہے۔ منقطع طریقہ سے منقطع کریں۔

// 必要な情報を設定する
var host = "";
var userName = "";
var password = "";

// 認証メソッドを作成
var authMethod = new Renci.SshNet.PasswordAuthenticationMethod(userName, password);

// 接続情報を作成
var connectionInfo = new Renci.SshNet.ConnectionInfo(host, userName, authMethod);

// SFTP クライアントを作成
var client = new Renci.SshNet.SftpClient(connectionInfo);

// 接続。失敗した場合は例外が発生
client.Connect();

// 切断
client.Disconnect();

عوامی کلیدی توثیق

نجی کلید کو کسی بھی پوشہ میں گاہک پر رکھیں۔ جیسا کہ آپ سیٹ اپ ٹپس میں دیکھ سکتے ہیں، اگر آپ اپنی نجی کلید کو ایک فولڈر میں رکھتے ہیں جو دیگر اکاؤنٹس تک رسائی حاصل کر سکتا ہے، ایس ایف ٹی پی پروسیسنگ ناکام ہوسکتی ہے۔ یقینی بنائیں کہ آپ کے چلائے جانے والے اکاؤنٹ یا صرف منتظمین تک رسائی ہو۔

image

پاس ورڈ توثیق سے مختلف بات یہ ہے کہ توثیق کا طریقہ نجی کلیدی توثیقی طریقہ میں تبدیل ہو گیا ہے۔

دوسری دلیل کے طور پر "نجی کلیدی مسل" کا اختصاص کریں اور مسل راہ اور پاس فریز (اگر سیٹ) کا اختصاص کریں جہاں نجی کلید رکھی گئی ہے۔

// 必要な情報を設定する
var host = "";
var userName = "";
var passPhrase = "";
var keyFilePath = @"C:\xxxxxxxxxx\id_rsa";

// 認証メソッドを作成
var authMethod = new Renci.SshNet.PrivateKeyAuthenticationMethod(userName,
                      new Renci.SshNet.PrivateKeyFile(keyFilePath, passPhrase));

// 接続情報を作成
var connectionInfo = new Renci.SshNet.ConnectionInfo(host, userName, authMethod);

// SFTP クライアントを作成
var client = new Renci.SshNet.SftpClient(connectionInfo);

// 接続。失敗した場合は例外が発生
client.Connect();

// 切断
client.Disconnect();

ایس ایف ٹی پی کے ساتھ مسلیں بھیجیں اور وصول کریں

اسفٹپ کلائنٹ کے ساتھ سرور سے جڑنے کے بعد بھیجیں اور وصول کریں کوڈ لکھ کر مسلیں بھیجیں اور وصول کریں۔ ہم جو کچھ کر رہے ہیں وہ یہ ہے کہ "مقامی فائلوں کو پڑھیں اور انہیں ایس ایف ٹی پی سرورز پر بھیجیں" اور "ایس ایف ٹی پی سرورز سے فائلیں ڈاؤن لوڈ کریں اور انہیں مقامی طور پر محفوظ کریں"۔ خاص طور پر مشکل کام لکھے بغیر اس پر عمل درآمد کیا جاسکتا ہے۔

آپ بغیر کسی پریشانی کے جاپانی فائل نام بھیج اور وصول کرسکتے ہیں۔

/* ---------------- 中略 ------------------- */

var sendFilePath = @"C:\xxxxxxxxxxxx\テスト.txt";
var reseiveFilePath = @"C:\xxxxxxxxxxxx\テスト2.txt";

/* ---------------- 中略 ------------------- */

// 接続。失敗した場合は例外が発生
client.Connect();

// ファイルのアップロード(上書き)
using var sendStream = File.OpenRead(sendFilePath);
client.UploadFile(sendStream, Path.GetFileName(sendFilePath), true);

// ファイルのダウンロード(上書き)
using var reseiveStream = File.OpenWrite(reseiveFilePath);
client.DownloadFile(Path.GetFileName(sendFilePath), reseiveStream);

// 切断
client.Disconnect();

خلاصہ

SSH.NET ایس ایف ٹی پی بھیجنا اور وصول کرنا آسان بناتا ہے۔ پروگرام کو نافذ کرنے کے بجائے آزمائشی ماحول تیار کرنے میں زیادہ وقت لگ سکتا ہے۔

ایس ایف ٹی پی بنیادی طور پر ایف ٹی پی کی طرح ہی کام کرتا ہے، اور زیادہ تر کام SSH.NET میں نافذ کیا جاتا ہے۔ اگر آپ ایس ایف ٹی پی پروگرام کے مطابق استعمال کرنا چاہتے ہیں تو اس لائبریری کی سفارش کی جاتی ہے۔