تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيف يمكن التعامل مع هذه الشفرة وفيها SecureString
#1
السلام عليكم ورحمة الله وبركاته

اخواني لدي هذه الشفرة
كود :
Shared Sub runRD(strIP As String, strUN As String, strPW As SecureString)
        Dim proc As New ProcessStartInfo
        proc.UseShellExecute = False
        proc.FileName = "MSTSC.exe"
        proc.Arguments = "/v:" & strIP
        proc.UserName = strUN
        proc.Password = strPW
        Process.Start(proc)
    End Sub
ومن خلالها استطيع ارسال بيانات لهذه الدالة ومنها استطيع تشغيل " برنامج سطح المكتب البعيد " Remote Desktop ، في بداية الأمر لم اكن استخدم اسم المستخدم وكلمة المرور والشفرة تعمل على أكمل وجه والحمد لله ، لكن بعد ضافة اسم المستخدم وكلمة المرور ظهرت لي معضلة مع المتغير strPW

كيف يمكن التعامل مع هذا النوع من المتغيرات علماً إني أرسل البيانات بهذه الطريقة
إقتباس :runRD(TextBox10.Text, TextBox1.Text, TextBox2.Text)

الدالة لا تستقبل قيمة من مربع نص مباشرة فكيف يمكن التعامل معها ؟
قال رسول الله صلى الله عليه وسلم ( من قال لا إله إلا الله دخل الجنة ) حديث صحيح.
قال رسول الله صلى الله عليه وسلم ( كلمتان خفيفتان على اللسان ثقيلتان في الميزان حبيبتان للرحمن : سبحان الله وبحمده سبحان الله العظيم ) حديث صحيح.
الرد
تم الشكر بواسطة:
#2
السلام عليكم اخي عبد الله
التحويل الضمني في هذه الحالة لايصح
يجب ان تقوم بالتحويل الصريح
انا كنت بعدل المثال الان لاكن اكتشفت شئ خطير
عند بناء كائن جديد من New ProcessStartInfo يقبل منك 2 برمتر الاول سلسلة حرفية والاخر طول السلسلة
وعندما اردت تحويل المتغير strPW الي سلسلة حرفية لاسناده للدالة قالت ميكرو سوفت ان الامر لايصح لمستخدمي VB.NET
لانها تقبل سلسلة حرفية امنية وهي متوفرة في الـ #C فقط راجع
لا ادري هل هناك طريقة لتحويل متغير من نوع String الي SecureString في VB.NET
ممكن تعمل دالة في ملف ديل بالـ #C وتقوم باستخدامها في ذلك الامر
لا اعلم لعل احد من الاخوة يكون عنده حل
الرد
تم الشكر بواسطة: عبد الله
#3
السلام عليكم ورحمة الله وبركاته

أخي الكريم
المشكلة كما قال لك الأخ علي ولكن تستطيع تمرير النص في أداة مربع النص إلى متغير من نوع SecureString وذلك بالطريقة التالية:

كود :
Dim SecureString1 As New SecureString
        For Each I As Char In TextBox2.Text.ToCharArray
            SecureString1.AppendChar(I)
        Next

وبعد ذلك تقوم باستدعاء الدالة بالشكل التالي

كود :
runRD(TextBox10.Text, TextBox1.Text, SecureString1)

بالتوفيق
الرد
تم الشكر بواسطة: عبد الله
#4
السلام عليكم
جزاك الله خيرا اخي ابو محمد
انا فعلا شفت الاجراء AppendChar لاكني ظنيت انه يقبل حرف امني ايضا
كده المشكلة انحلت
الكود النهائي


كود :
Shared Sub runRD(strIP As String, strUN As String, strPW As String)
        Dim proc As New ProcessStartInfo
        proc.UseShellExecute = False
        proc.FileName = "MSTSC.exe"
        proc.Arguments = "/v:" & strIP
        proc.UserName = strUN
        For Each Cr As Char In Split(strPW) : proc.Password.AppendChar(Cr) : Next
        Process.Start(proc)
    End Sub
الرد
تم الشكر بواسطة: عبد الله


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف يمكن نسخ اعمدة معينة من ملف اكسل ووضعها في ملف اخر montser 1 43 09-05-18, 12:04 AM
آخر رد: viv
  كيف يمكن دمج ملفات الـ DLL مع الملف التنفيذي viv 6 115 07-05-18, 10:01 PM
آخر رد: viv
  كيف يمكن تلوين اسطر بعينها فى الكريستال ريبوت السيد الجوهري 1 71 07-05-18, 06:49 AM
آخر رد: عبدالله الدوسري
  [سؤال] كيف يمكن قراءة التاريخ المدخل بواسطة datetimepiker في كود البحث ؟ zainab m 1 84 24-04-18, 10:16 PM
آخر رد: mawadaalmogrbi
  كيف يمكن طباعة مربعات النص الموجودة علي الفورم مباشرة السيد الجوهري 2 120 12-04-18, 11:37 PM
آخر رد: السيد الجوهري
  كيف يمكن التحقق من وجود اسم موظف بقاعدة بيانات الحضور وسام عبدالله الدمرداش 3 154 12-04-18, 01:30 AM
آخر رد: ملهمـ
  مشكلة ارجو حلها في التعامل مع الصور كناري008 17 209 21-02-18, 03:02 PM
آخر رد: sendbad100
  [سؤال] هل يمكن عمل مجاميع رئيسية وفرعية داخل داتا جريد فيو السيد الجوهري 9 70 11-02-18, 07:52 PM
آخر رد: محمود صالح
  [سؤال] طلب في التعامل مع اكسل adam mostafa 8 230 11-02-18, 06:12 PM
آخر رد: adam mostafa
  هل يمكن التحكم في البرنامج من خلال صفحة html anes 33 225 09-02-18, 05:59 PM
آخر رد: anes

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم