PDA

View Full Version : مشکل در اجرای برنامه از روی شبکه



alirzn
یک شنبه 11 شهریور 1386, 08:58 صبح
با سلام:
من یک برنامه دارم که روی سرور یکی از سازمانهای دولتی هست.
وقتی فایل exe برنامه رو روی درایو server شبکه می گذارم اجرا نمی شود و error
That assembly does not allow partially trusted callers
می دهد.
اما وقتی روی hard هست برنامه اجرا میشه
ممنون می شم اگر کمکم کنید.

MH2538
یک شنبه 11 شهریور 1386, 11:35 صبح
به این آدرس مراجعه کن.
http://blogs.msdn.com/shawnfa/archive/2005/02/04/367390.aspx

alirzn
یک شنبه 11 شهریور 1386, 12:15 عصر
ممنونم
اما من این لینکو دیدم اما چیزی دستگیرم نشد
این پیغام اصلا چیه؟
باید چه کار کنم؟

alirzn
یک شنبه 11 شهریور 1386, 22:04 عصر
کسی نیست بتونه به من کمک کنه؟

mehdi.mousavi
پنج شنبه 15 شهریور 1386, 16:19 عصر
با سلام:
من یک برنامه دارم که روی سرور یکی از سازمانهای دولتی هست.
وقتی فایل exe برنامه رو روی درایو server شبکه می گذارم اجرا نمی شود و error
That assembly does not allow partially trusted callers
می دهد.
اما وقتی روی hard هست برنامه اجرا میشه
ممنون می شم اگر کمکم کنید.

لطفا به این آدرس رجوع کنید.
(http://barnamenevis.org/forum/showpost.php?p=390895&postcount=3)

رضا عربلو
جمعه 16 شهریور 1386, 02:11 صبح
ببیینید بنا به secuerity که مایکروسافت در دات نت ارائه کرده است هر برنامه تنها به منابعی که بصورت لوکال در آن کامپیوتر قرار دارد تراست می کند.
در صورتی که برنامه شما بخواهد از منابعی که در شبکه قرا دارند استفاده کنید (از قبیل اسمبلی های غیر میکروسافت)مشکل trust خواهید داشت (اسمبلی های مایکرو سافت بطور پیش فرض تراست شده اند). که این مشکل به راحتی با ابزارهای caspol و یا ایجاد یک پکیج msi و قرا دادن آن در Group policy به راحتی قابل حل است.

این کار را انجام داده و کاملاً تست کرده ام. جواب می دهد.

alirzn
جمعه 16 شهریور 1386, 10:37 صبح
میشه یکم توضیح بدید.
چطور میشه این کاری که گفتید رو انجا داد.
میشه دقیق بگید؟

رضا عربلو
شنبه 17 شهریور 1386, 00:03 صبح
نمونه ای از نحوه استفاده از CASPOL را در پایین برایتان قرار می دهم


%systemroot%\Microsoft.NET\Framework\v2.0.50727\ca spol -m -polchgprompt off -ag LocalIntranet_Zone -url \\Donya\BNPPAssistance\* FullTrust -n "BNPPAssistance" -d "BNPPAssistance Trust"

این پچ را بایستی در کلاینت هایتان اجرا کنید.

البته این تنضیمات را می توانید در روی یک ماشین در CONTEROL PANERL-->
Microsoft .NET Framework 2.0 Configuration -->
RUNTIME SECUERITY POLICY -->
MACHINE -->
CODE GROUPS -->
ALL_CODE -->
LocalIntranet_Zone -->
ADD A CHILD GROUP CODE
انجام دهید سپس بر روی نود RUNTIMESECURITY POLICY کلیک راست کرده و با انتخاب CREATE DEPLOYMENT PACKAGE یک فایل .MSI بدست خواهید آورد که تنضیماتی را که انجام داده اید را با اجرای آن بر روی هر کامپیوتری انجام خواهد داد. حال این پکیج را درز GEROUP PLOCY برای اجرا بر روی کلاینت های دامین تان قرار دهید.

alirzn
شنبه 17 شهریور 1386, 10:52 صبح
میبخشید پکیج را در کجا قرار دهم؟
منظورت از group policy کجاست؟

من این کاری رو گفتید کردم دوباره نشد.
اون capsol رو کجا باید وارد کنم؟
من فایلمو واستون فرستادم یک نگاهی بهش کی کنید؟
خیلی واسم این کار مهمه . اگر کمکم کنید واقعا ممنون میشم.

آقا من اون کار رو کردم و پکیج رو هم ساختم و اجراش کردم بازم نشد.
این کار واسم خیلی مهمه . واقعا ممنون میشم اگر کمکم کنید.
وقتی ADD A CHILD GROUP CODE
را می زنم در تنظیماتش چیزه خاصی نداره که؟

میبخشید پکیج را در کجا قرار دهم؟
منظورت از group policy کجاست؟

اون دستور capsol که گفتید تا v2.0.50727 رو میرم.
اون بعدش چیه؟
کجا باید وارد کنم؟

رضا عربلو
شنبه 17 شهریور 1386, 23:34 عصر
1- این چیزهایی که در بالا گفتم را در MSDN خواندم. یک نگاهی بهش بنداز خیلی خوب و جامع دربرش صحبت کرده است.
2- group policy یکی از امکانات WINDOWS SERVER2000 , 2003 می باشد که با کمک آن می توانید یک سری اعمال سیاست ها را بر روی شبکه تان انجام دهید. مثلا این که بر روی هر کلاینت یک نرم افزار را نصب کنید که در مورد بالا پکیج MSI می باشد.
3-این دستور capsol که گفتم را می توانید به صوورت یک batch file درست کنید و بر روی کلاینت هایتان اجرا کنید. یا اور می شوم که \\Donya\BNPPAssistance\ (file://Donya/BNPPAssistance/)* ادرس برنامه شما است )Donya) اسم سرور یا کامپیوتری که برنامه در ان قرار ارد و BNPPAssistance اسم فولدری که shareشده است.
4- ADD A CHILD GROUP CODE بعد یک اسم به انتخاب خودت می دی بعد next بعد url را انتخاب می کنی و در پایینش مسر پوشه برنامه مثلاً \\Donya\BNPPAssistance\ (file://Donya/BNPPAssistance/) و بعد nextو بعد full trust و ...

alirzn
یک شنبه 18 شهریور 1386, 08:31 صبح
آقا من اون کارو کردم نشد.
آقا شرمنده من فایل برنامه رو فرستادم واستون.
آدرس سرور و فلدر منم روی شبکه که domain هست به صورت زیره.
172.16.0.3\\
و اسم فلدر baznesh هست.
واقعا ممنون میشم اگر کمکم کنید و یک نگاهی به برنامه کنید.
راستی اون capsol رو حتما باید انجام بدم؟ یا همون msi ساختن کفایت می کنه؟
یعنی دو راه مختلف هست یا اینکه هر دو شو باید انجام بدم؟

mehdi.mousavi
یک شنبه 18 شهریور 1386, 10:31 صبح
آقا من اون کارو کردم نشد.
آقا شرمنده من فایل برنامه رو فرستادم واستون.
آدرس سرور و فلدر منم روی شبکه که domain هست به صورت زیره.
172.16.0.3\\
و اسم فلدر baznesh هست.
واقعا ممنون میشم اگر کمکم کنید و یک نگاهی به برنامه کنید.
راستی اون capsol رو حتما باید انجام بدم؟ یا همون msi ساختن کفایت می کنه؟
یعنی دو راه مختلف هست یا اینکه هر دو شو باید انجام بدم؟


کاری که تو پست 5 گفتم رو انجام دادید؟؟؟

alirzn
یک شنبه 18 شهریور 1386, 11:53 صبح
اون msdn رو هم دیدم اما به نتیجه نرسیدم

رضا عربلو
یک شنبه 18 شهریور 1386, 22:31 عصر
یکی از دو روش capsol یا msi به اختیار خودت.
ببین شما مشکل تراست به یک منبع داری و مثالی که من در بالا آوردم تراست به یک فولدر بود ببین به چی تراست نمی کنی (یک پرینتر، یک ...). ولی روش همونی که در قبلا گفتم.

رضا عربلو
دوشنبه 19 شهریور 1386, 17:08 عصر
دوست عزیز ، من برنامه شما را در فولدر شیر شده در شبکه اجرا کردم (البته تا قسمت لاگین به sql server).


1- اگر ip سرور شما 172.16.0.3 یاشد و برنامه شما در فولدر baznesh شیر (share) شده باشد شما می توانید یک بچ فایل به صورت


echo off
%systemroot%\Microsoft.NET\Framework\v2.0.50727\ca spol -m -polchgprompt off -ag LocalIntranet_Zone -url \\172.16.0.3\baznesh\* FullTrust -n "baznesh" -d "bazneshTrust"
Pause

بسازید و با اجرای آن در کلاینت هایتان به آنها بگویدد که به مسیر فوق trust کنند (البته بایستی پرمیشن لازم را برای اجرای آن در کلاینت ها داشته باشید به همین دلیل در پایان بچ فایل pause گذاشتم تا از صحت اجرای آن مطمئن شوید)
حالا کلاینت هایتان می توانند با اجرای \\172.16.0.3\baznesh\mnu.exe در windows Explorer برنامه تان را اجرا کنند (می توانید یک شورت کات برای آن بسازید)


2- اگرنام کامپیوتر سرور شما Server01 یاشد و برنامه شما در فولدر baznesh شیر (share) شده باشد شما می توانید یک بچ فایل به صورت


echo off
%systemroot%\Microsoft.NET\Framework\v2.0.50727\ca spol -m -polchgprompt off -ag LocalIntranet_Zone -url \\Server01\baznesh\* FullTrust -n "baznesh" -d "bazneshTrust"
Pause

بسازید و با اجرای آن در کلاینت هایتان به آنها بگویدد که به مسیر فوق trust کنند (البته بایستی پرمیشن لازم را برای اجرای آن در کلاینت ها داشته باشید به همین دلیل در پایان بچ فایل pause گذاشتم تا از صحت اجرای آن مطمئن شوید)
حالا کلاینت هایتان می توانند با اجرای \\Server01 (file://\\Server01) \baznesh\mnu.exe در windows Explorer برنامه تان را اجرا کنند (می توانید یک شورت کات برای آن بسازید)


نکته: بین دو UNC ـ( \\Server01 \baznesh\mnu.exe و \\172.16.0.3\baznesh\mnu.exe) تفاوت قائل شوید و اگر به یک نوع UNC تراست بخشیدید فقط از آن می توانید استفاده کنید (مثلاً در مورد اول نمی توانید از \\Server01 \baznesh\mnu.exe برای اجرای برنامه استفاده کنید و برعکس) بنا بر این بهتر است هر دو بچ فایل را با هم ادقام کنید.


اگر باز هم به مشکل برخوردید صددرصد مطمئن باشید اشکال از جای دیگری است.
مرا بی اطلاع نگذارید.
با تشکر.

alirzn
سه شنبه 20 شهریور 1386, 07:15 صبح
مرسی از راهنماییتون
این بچ فایل رو چه جوری باید بسازم؟
یعنی این دستوری که نوشتید رو کجا باید وارد کنم؟
واقعا ممنون

PC2st
سه شنبه 20 شهریور 1386, 09:19 صبح
این بچ فایل رو چه جوری باید بسازم؟
بچ فایل (Batch File) یک فایل متنی با پسوند bat است. یک فایل متنی با اون محتویات درست کنید و پسوندش رو به bat تغییر بدید.

alirzn
پنج شنبه 22 شهریور 1386, 08:20 صبح
آقا من این کارو هم کردم بازم نشد.
ببین آدرس دقیق فلدر من در مسیر \\172.16.0.3\nv\baznesh (file://\\172.16.0.3\nv\baznesh)
و اسم سرور \\172.16.0.3\nv\baznesh (file://\\172.16.0.3\nv\baznesh)
که در واقع nv یکی از شاخه های سرور است و baznesh درون آن است.
من nv هم به دستوراتم اضافه کردم اما بازهم نشد.
شما میشه batch فایل رو بسازین و واسه من بفرستید؟
ضمنا لازم نیست bacth فایل جای خاصی باشه و اجرا بشه؟
ممنون میشم

رضا عربلو
جمعه 23 شهریور 1386, 01:36 صبح
1-\\172.16.0.3\nv\baznesh\ اسم سرور نیست اسم سرور می تونه serevceer01, ... باشه
2- در کلاینت هات بچ فایل را اصلاً اجرا می کنی؟ و آیا با موفقیت اجرا میشود؟

رضا عربلو
جمعه 23 شهریور 1386, 01:42 صبح
لازم نیست bacth فایل جای خاصی باشه و اجرا بشه. خودش مسیر caspol زرا پیدا می کند.

رضا عربلو
جمعه 30 شهریور 1386, 00:53 صبح
بلاخره مشکلت حل شد؟

alirzn
جمعه 30 شهریور 1386, 13:01 عصر
نه هنوز همون مشکل رو دارم هر کاری میکنم نمیشه.
روی هر شبکه ای که می خوام این کارو کنم همین پیغام رو میده.

رضا عربلو
جمعه 30 شهریور 1386, 23:56 عصر
1- مطمئن باش که جواب همینی که من گفتم. من خودم برنامت را توی شبکه تست کردم (التهتا لاگین به اسکیوال سرور) بدون هیچ مشکلی اجرا شد.
2- اگر تمام چیزهای رو که گفتم مو به مو اجرا کردی پس باید مشکل جای دیگری باشد.
3-برای یافتن مشکل از جاهای خیلی ساده شروع می کنیم.

الف- اصلاً تو کلاینت هات دات نت فریمورک نصب است و چه ورژنی؟ اا با ورژن مورد استفاده در برنامه ات یکی است؟
ب - ایا اگر برنامه ات را بصورت لوکال در کلایت هااجرا کنی (یعنی بدون انکه برای برنامه ات ستاپ بسازی باکپی فایلهای که در بالا دادی برنامه ات در یک پوشه در کلاینت هات مثلاً c:\) بطور کاملاجرا می شود. لین صوال را از اینبابت گفتم تا بدانم تمام اسمبلی ها و دیگر resource ها را در پوشه رنامه قرار دادی.
ج- باز هم می پرسم ایا دیتور trust به مسیر پوشه share شد با موفقیت انجام می شود. برای اطمینان در .net 2.0 configuraion managment ببین ایا دستور فوق درست trust کرده است.
د- فکر می کنی برنامه ات به ه پرمیشن هایی برای پوشه و فایل های وجود دران نیاز دارد و ایا اون پرمیشن ها را دارد.

alirzn
شنبه 31 شهریور 1386, 11:17 صبح
آره .net2.0 نصب هست روی همه کلاینت هام
و وقتی فایل ها رو روی هارد کلاینت کپی می کنم بدون مشکل اجرا میشه.

منظور ج و د رو متوجه نشدم دقیق میگید چیه؟




1- مطمئن باش که جواب همینی که من گفتم. من خودم برنامت را توی شبکه تست کردم (التهتا لاگین به اسکیوال سرور) بدون هیچ مشکلی اجرا شد.
2- اگر تمام چیزهای رو که گفتم مو به مو اجرا کردی پس باید مشکل جای دیگری باشد.
3-برای یافتن مشکل از جاهای خیلی ساده شروع می کنیم.

الف- اصلاً تو کلاینت هات دات نت فریمورک نصب است و چه ورژنی؟ اا با ورژن مورد استفاده در برنامه ات یکی است؟
ب - ایا اگر برنامه ات را بصورت لوکال در کلایت هااجرا کنی (یعنی بدون انکه برای برنامه ات ستاپ بسازی باکپی فایلهای که در بالا دادی برنامه ات در یک پوشه در کلاینت هات مثلاً c:\) بطور کاملاجرا می شود. لین صوال را از اینبابت گفتم تا بدانم تمام اسمبلی ها و دیگر resource ها را در پوشه رنامه قرار دادی.
ج- باز هم می پرسم ایا دیتور trust به مسیر پوشه share شد با موفقیت انجام می شود. برای اطمینان در .net 2.0 configuraion managment ببین ایا دستور فوق درست trust کرده است.
د- فکر می کنی برنامه ات به ه پرمیشن هایی برای پوشه و فایل های وجود دران نیاز دارد و ایا اون پرمیشن ها را دارد.

رضا عربلو
یک شنبه 01 مهر 1386, 00:05 صبح
اگر چه که شک دارم که تمام چیزهایی که گفتم به دقت انجام داده ای، ولی خوب ادامه می دهیم.
ج. بر روی یک کلاینت در
CONTEROL PANERL -->
Microsoft .NET Framework 2.0 Configuration -->
RUNTIME SECUERITY POLICY -->
MACHINE -->
CODE GROUPS -->
ALL_CODE -->
LocalIntranet_Zone
آیا نود baznesh را می بینی . این نود چه تنضیماتی دارد؟

د. فکر می کنی برنامه ات به چه پرمیشن هایی برای پوشه و فایل های وجود دران نیاز دارد و ایا اون پرمیشن ها را دارد. یعنی ممکن ست برنامه ات بخواهد در این شاخه چیزی را تغییر دهد مثلاً یک فایل را و شما فقط پرمیشن Readonly داشته باشید؟

ه. یک برنامه خیلی ساده که از یک ریسورس (مثلاً یکی از اسمبلی های که در برنامت از انها استفاده کرده ای) استفاده می کند را در همان پوشه بگذار و ببین ایا اجرا می شود؟

alirzn
یک شنبه 01 مهر 1386, 10:22 صبح
نود Baznesh حاوی:
Description:
bazneshTrust

Assembly evidence must match this membership condition to belong to the code group: Url: \\172.16.0.3\nv\baznesh\*.

Assemblies matching the membership condition are granted this permission set at the current policy level: FullTrust.

Permission Set Description:
Allows full access to all resources



ضمنا من تو برنامم از componentهای متفرقه که از internet گرفتم و add refrence کردم استفاده می کنم.
اونها باعث مشکل که نمیشن؟

رضا عربلو
یک شنبه 01 مهر 1386, 17:17 عصر
ضمنا من تو برنامم از componentهای متفرقه که از internet گرفتم و add refrence کردم استفاده می کنم.
خویب ما می خواهیم به همین کامپاننت ها که در شاخه برنامه ات قرار دارند تراست بکنیم.
ه. یک برنامه خیلی ساده که از یک ریسورس (مثلاً یکی از اسمبلی های که در برنامت از انها استفاده کرده ای) استفاده می کند را در همان پوشه بگذار و ببین ایا اجرا می شود؟

alirzn
یک شنبه 01 مهر 1386, 19:28 عصر
منظورتو دقیق متوجه نمیشم. میشه دقیق بگی چکار کنم؟
من فلدرو واست فرستادم مثلا کدوم فایل رو؟



خویب ما می خواهیم به همین کامپاننت ها که در شاخه برنامه ات قرار دارند تراست بکنیم.
ه. یک برنامه خیلی ساده که از یک ریسورس (مثلاً یکی از اسمبلی های که در برنامت از انها استفاده کرده ای) استفاده می کند را در همان پوشه بگذار و ببین ایا اجرا می شود؟

alirzn
دوشنبه 02 مهر 1386, 16:16 عصر
منظورتو دقیق متوجه نمیشم. میشه دقیق بگی چکار کنم؟
من فلدرو واست فرستادم مثلا کدوم فایل رو؟

رضا عربلو
دوشنبه 02 مهر 1386, 16:22 عصر
ببین ریسورس می تونه یک فایل باشد، یک اسمبلی باشد.
یک برنامه خیلی ساده درست کن و در اون از کامپاننتهای که در برنامه اصلی ات استفاده کردی قرار بده. قائدتاً این برنامه بایستی اجرا شود.

alirzn
چهارشنبه 23 آبان 1386, 07:23 صبح
سلام :
آقا من مشکلی که داشتم و اون اجرا نشدن برنامه از روی شبکه بودو هنوز دارم. و خیلی هم لازمش دارم. میشه با هم دوباره تلاش کنیم که درست بشه؟
ممنون. این لینک بدرد میخوره؟
http://www.codeproject.com/csharp/run_code_remotely.asp


ببین ریسورس می تونه یک فایل باشد، یک اسمبلی باشد.
یک برنامه خیلی ساده درست کن و در اون از کامپاننتهای که در برنامه اصلی ات استفاده کردی قرار بده. قائدتاً این برنامه بایستی اجرا شود.

رضا عربلو
چهارشنبه 23 آبان 1386, 16:53 عصر
ببین من برنامه تو را بدون هیچ مشکلی از روی یک فولدر شیر شده در شبکه اجرا کردم.
ای کاش می تونستم یک فیلم برات تهیه کنم و برات بفرستم تا ببینی!
با اطمینان می گویم که اگر کارهای را که در بالا گفتم درست انجام بدهی بایستی بتوانی برنامه ات را اجرا کنی، مگر آنکه مشکل در جای دیگری باشد.

اگر می خواهی دوباره با هم سعی کنیم، یک بار دیگه یک برنامه تک فرمی خیلی ساده که از اون کامپاننت ها استفاده می کنند بساز و تمام اون مراحلی که گفتم انجام بده و ببین اجرا میشود یا نه اگر تمام اون مراحل را به درستی انجام دادی و برنامه ات اجرا شد که فوحی و اگر اجرا نشد مطمئن باش مشکل از جای دیگری است.

نه اون لینکی که دادی مربوط به مبحث دات نت ریموتینگ است.
لینک زیر رو یک نگاه کن :
http://www.codeproject.com/dotnet/UB_CAS_NET.asp

hdv212
پنج شنبه 24 آبان 1386, 00:12 صبح
mehdi6755 جان این کدت که مشکل داره، اصلا از لحاظ Syntax درست نیست، شاید بد کپی کردی، یه بار دیگه با دقت بنویس، مرسی:

[assembly: System.Security.Permissions.PermissionSet
System.Security.Permissions.SecurityAction.Request Minimum, Name="FullTrust")]

البته از این مسیر که از CodeProject گرفتم، مشکل حل میشه :
->Control Panel\Administrative Tools: Net framework configuration->RunTime security policy->(Machine)->
->All code->Edit Code Group Properties->Permission set
و Permission set رو روی Full Trust قرار بدید.


ولی راهی که mehdi6755 گفت، از طریق کد نویسی هست و قشنگ تره.
ولی یه سوال اینجاس، اگه برنامه ی ما از dll یا ocx ای غیر از دات نت استفاده کرده باشه چی ؟

alirzn
پنج شنبه 24 آبان 1386, 07:07 صبح
آقا من اون راه رو چک کردم اما دقیق نمی دونم باید چه کار کنم و آیا درست کارمئ انجام میدم یا نه؟
میشه با هم دوباره از اول تلاش کنیم؟ ممنون میشم.


ببین من برنامه تو را بدون هیچ مشکلی از روی یک فولدر شیر شده در شبکه اجرا کردم.
ای کاش می تونستم یک فیلم برات تهیه کنم و برات بفرستم تا ببینی!
با اطمینان می گویم که اگر کارهای را که در بالا گفتم درست انجام بدهی بایستی بتوانی برنامه ات را اجرا کنی، مگر آنکه مشکل در جای دیگری باشد.

اگر می خواهی دوباره با هم سعی کنیم، یک بار دیگه یک برنامه تک فرمی خیلی ساده که از اون کامپاننت ها استفاده می کنند بساز و تمام اون مراحلی که گفتم انجام بده و ببین اجرا میشود یا نه اگر تمام اون مراحل را به درستی انجام دادی و برنامه ات اجرا شد که فوحی و اگر اجرا نشد مطمئن باش مشکل از جای دیگری است.

یکی از برنامه های دیگم که می خوام باز کنم یک پیغام دیگه میده.
request for the permission of type
'system.data.sqlclient.sqlclientpermission,system. data'fail
این پیغام مال چیه؟

رضا عربلو
پنج شنبه 24 آبان 1386, 12:48 عصر
احتمالاً لاگینی که با آن به اس کیو ال متصل می شوی پرمیشن لازم برای اجرای دستور اس کیو ال مربوطه را ندارد.

اون لینکی رو که داده بودم با دقت خوندی؟
http://www.codeproject.com/dotnet/UB_CAS_NET.asp

hdv212
جمعه 25 آبان 1386, 12:03 عصر
یکی از برنامه های دیگم که می خوام باز کنم یک پیغام دیگه میده.
request for the permission of type
'system.data.sqlclient.sqlclientpermission,system. data'fail
این پیغام مال چیه؟
همون راه حلی که در پست 33 گفتم رو انجام دادی ؟ از اون مسیر برو، مشکلت حل میشه، ولی اون دو تا سوال رو که در پست 33 کردم هنوز کسی جواب نداده.

alirzn
جمعه 25 آبان 1386, 14:17 عصر
این کارو که تو پست 33 گفتی رو روی client ها باید انجام بدم یا server؟


همون راه حلی که در پست 33 گفتم رو انجام دادی ؟ از اون مسیر برو، مشکلت حل میشه، ولی اون دو تا سوال رو که در پست 33 کردم هنوز کسی جواب نداده.

hdv212
جمعه 25 آبان 1386, 17:46 عصر
روی جایی که این پیغام خطا رو بهت میده، به احتمال زیاد کلاینت هست.

alirzn
شنبه 26 آبان 1386, 09:53 صبح
آقا من این کارو کردم درست شد. اما من چندین کلاینت دارم. نمیشه که یکی یکی روی همه ی کلاینت ها این کارو کرد. نمیشه توی کد برنامه کدی نوشت که این تنظیمو انجام بده؟


روی جایی که این پیغام خطا رو بهت میده، به احتمال زیاد کلاینت هست.

alirzn
شنبه 26 آبان 1386, 09:57 صبح
آقا من این کالرو کردم درست شد

->Control Panel\Administrative Tools: Net framework configuration->RunTime security policy->(Machine)->
->All code->Edit Code Group Properties->Permission set
اما روی تک تک client ها باید این کارو کنم. نمیشه کدی نوشت تو برنامم بگذارم که همین کارو اتوماتیک انجام بده؟


احتمالاً لاگینی که با آن به اس کیو ال متصل می شوی پرمیشن لازم برای اجرای دستور اس کیو ال مربوطه را ندارد.

اون لینکی رو که داده بودم با دقت خوندی؟
http://www.codeproject.com/dotnet/UB_CAS_NET.asp

alirzn
شنبه 26 آبان 1386, 09:58 صبح
آقا من این کارو کردم درست شد.
->Control Panel\Administrative Tools: Net framework configuration->RunTime security policy->(Machine)->
->All code->Edit Code Group Properties->Permission set
اما روی تکتک کلاینت هام باید این کارو کنم. نمیشه کدی بنویسم توی برنامم که اتوماتیک این کار انجام بشه؟


احتمالاً لاگینی که با آن به اس کیو ال متصل می شوی پرمیشن لازم برای اجرای دستور اس کیو ال مربوطه را ندارد.

اون لینکی رو که داده بودم با دقت خوندی؟
http://www.codeproject.com/dotnet/UB_CAS_NET.asp

alirzn
شنبه 26 آبان 1386, 10:18 صبح
آقا من این کارو کردم درست شد.
->Control Panel\Administrative Tools: Net framework configuration->RunTime security policy->(Machine)->
->All code->Edit Code Group Properties->Permission set
اما روی تکتک کلاینت هام باید این کارو کنم. نمیشه کدی بنویسم توی برنامم که اتوماتیک این کار انجام بشه؟

احتمالاً لاگینی که با آن به اس کیو ال متصل می شوی پرمیشن لازم برای اجرای دستور اس کیو ال مربوطه را ندارد.

اون لینکی رو که داده بودم با دقت خوندی؟
http://www.codeproject.com/dotnet/UB_CAS_NET.asp

hdv212
شنبه 26 آبان 1386, 11:12 صبح
خب منم منظورم همین بود، فعلا باید روی تک تک کلاینت ها انجام بدی، ولی کدی که mehdi6755 گذاشته از طریق کد نویسی هست :
[
assembly: System.Security.Permissions.PermissionSet
System.Security.Permissions.SecurityAction.Request Minimum, Name="FullTrust")]
منتها کدش مشکل داره، فکر کنم بد کپی کرده باشه.
مشکل دیگه اینه که اگه برنامه مون از یه dll غیر دات نتی هم استفاده کرده باشه، اونوقت چی ؟ اونو چکار کنیم ؟

alirzn
شنبه 26 آبان 1386, 11:17 صبح
نمیدونم اونم مشکل ایجاد میکنه.
راستی با batch فابل چی؟ مثلا یک batch فایل ساخت که این کارو انجام بده؟


خب منم منظورم همین بود، فعلا باید روی تک تک کلاینت ها انجام بدی، ولی کدی که mehdi6755 گذاشته از طریق کد نویسی هست :
[
assembly: System.Security.Permissions.PermissionSet
System.Security.Permissions.SecurityAction.Request Minimum, Name="FullTrust")]
منتها کدش مشکل داره، فکر کنم بد کپی کرده باشه.
مشکل دیگه اینه که اگه برنامه مون از یه dll غیر دات نتی هم استفاده کرده باشه، اونوقت چی ؟ اونو چکار کنیم ؟

alirzn
شنبه 26 آبان 1386, 13:20 عصر
آقا من فایل msi آن رو ساختم و بر روی هر سیستمی که اجرا بشه اون تنظیم fuultrust رو انجام میده.
بر روی نود RUNTIMESECURITY POLICY کلیک راست کرده و با انتخاب CREATE DEPLOYMENT PACKAGE یک فایل .MSI بدست خواهید آورد که تنضیماتی را که انجام داده اید را با اجرای آن بر روی هر کامپیوتری انجام خواهد داد. حال این پکیج را درز GEROUP PLOCY برای اجرا بر روی کلاینت های دامین تان قرار دهید.

رضا عربلو
شنبه 26 آبان 1386, 17:25 عصر
خوشحال شدم که بلاخره به جواب رسیدی.
نگفتی اشکال کارت از کجا بود؟ همون راهی که من گفته بودم را رفته ای پس چی رو اشتباه انجام داده بودی؟

hdv212
شنبه 26 آبان 1386, 21:47 عصر
آقا راه حلش از طریق کد نویسی هنوز حل نشده :

assembly: System.Security.Permissions.PermissionSet
System.Security.Permissions.SecurityAction.Request Minimum, Name="FullTrust")]
من فکر کنم منظور mehdi6755 از کد بالا این بوده :
[
assembly: System.Security.Permissions.PermissionSet(System.S ecurity.Permissions.SecurityAction.RequestMinimum, Name="FullTrust")]
که وقتی از شبکه برنامه رو اجرا میکنم، با پیغام خطای don't send مایکروسافت روبرو میشم، مهدی جان کجایی ؟

رضا عربلو
یک شنبه 27 آبان 1386, 00:05 صبح
ببین سکیوریتی که توسط Net Configuration که در سه سطح Enterprise و Machine و User برقرار می شود بالاتر از سطح کد می باشد. در واقع نیز بایستی چنین باشد،
و در غیر این صورت شما می توانید یک برنامه مخرب بنویسید که خود را تراست بکند و از تمام لایه های امنیتی شما بگذرد و اجرا شود. و این یعنی یک نقض امنیتی.
در واقع در مدل سکیوریتی چند لایه ای، معمولاً لایه های بعدی برای محدودتر کردن بکار می روند تا برای افزایش سطح دسترسی.
امیدوارم تونسته باشم خوب توضیح داده باشم.

alirzn
یک شنبه 27 آبان 1386, 06:58 صبح
خودمم دقیق نمی دونم اشسکال کار کجا بود اون مراحلی که گفتی رو با دقت دوباره انجام دادم درست شد. واقعا ممنون از لطفتون.


خوشحال شدم که بلاخره به جواب رسیدی.
نگفتی اشکال کارت از کجا بود؟ همون راهی که من گفته بودم را رفته ای پس چی رو اشتباه انجام داده بودی؟

alirzn
یک شنبه 27 آبان 1386, 06:59 صبح
با اون راهی که گفتید میشه package فایل msi ساخت میشه این کارو کرد و بر روی تمام client ها load کرد و مشکل حل میشه.


ببین سکیوریتی که توسط Net Configuration که در سه سطح Enterprise و Machine و User برقرار می شود بالاتر از سطح کد می باشد. در واقع نیز بایستی چنین باشد،
و در غیر این صورت شما می توانید یک برنامه مخرب بنویسید که خود را تراست بکند و از تمام لایه های امنیتی شما بگذرد و اجرا شود. و این یعنی یک نقض امنیتی.
در واقع در مدل سکیوریتی چند لایه ای، معمولاً لایه های بعدی برای محدودتر کردن بکار می روند تا برای افزایش سطح دسترسی.
امیدوارم تونسته باشم خوب توضیح داده باشم.

alirzn
چهارشنبه 30 آبان 1386, 07:25 صبح
سلام:
آقا من اون فایل msi رو توی group policy گذاشتم و بر روی شبکه load کردم اما بر روی client ها اجرا نشد. من چطور میتونم همین کارارو با فایل batch بسازم؟ دستورش چیه؟
یا حتی نمیشه در هنگام یا قبل از نصب framework این تنظیمات رو کنترل کنیم که fulltrust باشه؟


ببین سکیوریتی که توسط Net Configuration که در سه سطح Enterprise و Machine و User برقرار می شود بالاتر از سطح کد می باشد. در واقع نیز بایستی چنین باشد،
و در غیر این صورت شما می توانید یک برنامه مخرب بنویسید که خود را تراست بکند و از تمام لایه های امنیتی شما بگذرد و اجرا شود. و این یعنی یک نقض امنیتی.
در واقع در مدل سکیوریتی چند لایه ای، معمولاً لایه های بعدی برای محدودتر کردن بکار می روند تا برای افزایش سطح دسترسی.
امیدوارم تونسته باشم خوب توضیح داده باشم.

رضا عربلو
چهارشنبه 30 آبان 1386, 19:57 عصر
سلام:
آقا من اون فایل msi رو توی group policy گذاشتم و بر روی شبکه load کردم اما بر روی client ها اجرا نشد.
ببین قبل از قرار دادن فایل msi در داخل گروپ پالیسی بایستی مطمئن شوی که دات نت فریم ورک در کلاینت هایت نصب شده است و گرنه پکیج فوق بر روی کلاینتت نصب می شود و چون دات نت فریم ورک در کلاینتت نصب نیست هیچ اثری ندارد و در ضمن بعد از نصب دات نت فریم ورک در کلاینت دیگر پکیج فوق دوباره اجرا و نصب نخواهد شد (هر پکیجی در گروپ پالیسی فقط یکبار اجرا خواهد شد) مگر آنکه یک پکیج جدید دوباره ایجاد کنی و در گروپ پالیسی قرار دهی.


در مورد فایل بچ هم قبلاً توضیح داده ام.