-
امنيت در گزارشهاي stimulsoftrport
دوستان سلام
وقتي بوسيله استيمل يك گزارش تهيه مي كنيم مجبوريم فايل مورد نظر را در مسير مشخص ذخيره كنيم و برنامه اطلاعات را به اين
فايل مورد نظر ارسال مي كند حالا سوال من اينه كه :
1- آيا مي شود فايل هاي استيمل را در درون پروژه استفاده كرد؟
2- در صورتي كه استيمل بصورت فايل مي باشد براي جلوگيري از دستكاري فايل مورد نظر كه در سيستم كاربر نصب شده
چه راهكاري اتخاذ شود؟ (فكر كنيد يوزر با برنامه نويسي ارتباط دارد و با نصب محيط استيمل اطلاعات فايل را تغيير مي دهد)
بنظر شما بهترين روش چه مي باشد؟
ممنون
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
دوست عزیز شما لازم نیست همیشه گزارش رو بصورت یه فایل ذخیره و بازیابی کنید
اگه رو کامپوننت StiReport که رو فرم درگ کردید و دیزاینش کردید راست کلیک کرده و Property هاشو باز کنید
یه خاصیت داره بنام Save Report In Resource که گزارش رو تو ریسورسهای برنامه ذخیره میکنه
و از دست کاربر در امانه
روش بعدی اینه که گزارش رو تو دیتابیس ذخیره و بازیابی کنید.
موفق باشید
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
Esmail Solhkhah
دوست عزیز شما لازم نیست همیشه گزارش رو بصورت یه فایل ذخیره و بازیابی کنید
اگه رو کامپوننت StiReport که رو فرم درگ کردید و دیزاینش کردید راست کلیک کرده و Property هاشو باز کنید
یه خاصیت داره بنام Save Report In Resource که گزارش رو تو ریسورسهای برنامه ذخیره میکنه
و از دست کاربر در امانه
روش بعدی اینه که گزارش رو تو دیتابیس ذخیره و بازیابی کنید.
موفق باشید
دوست من من پروپرتی Save Report In Resource رو برابر با True قرار دادم برای نمایش گزارش چکار کنم قبلا که فایل بود این کد رو می نوشتم
StiReport1.Load("CreditDebitRep1.mrt")
StiReport1.RegData(DsReport.CreditDebit1)
StiReport1.Show()
StiReport1.Clone()
حالا با ترو شدن این پروپرتی چه کدی بنویسم
ممنون
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
با سلام
شما می تونید از سورس گزارشتون یه DLL درست کرده و اون رو تو پوشه Debug قرار بدید و سورس گزارش را در داخل پرژتون قرار بدید به این صورت
StiReport Report = new StiReport();
Directory.CreateDirectory("Report");
string ReportName = "..//..//Report//MyRep.mrt";
string ReportDllName = "Report//MyRep.dll";
if (!File.Exists(ReportDllName))
{
Report.Load(ReportName);
Report.Compile(ReportDllName);
}
else
Report = StiReport.GetReportFromAssembly(ReportDllName);
Report.RegData("DataSourceName", MyList);
Report.ShowWithWpf();
و دیگه لازم نیست فایل *.mrt رو در خروجی قرار بدید با تشکر
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
شما می تونید از سورس گزارشتون یه DLL درست کرده و اون رو تو پوشه Debug قرار بدید و سورس گزارش را در داخل پرژتون قرار بدید به این صورت
با تشکر از راهنمایی دوست عزیزمان مهدی آقازاده
به این نکته هم دقت کنید که فایلهای DLL که به اینصورت تولید میشن عین اسمبلی های دات نت به راحتی قابل دیکامپایل هستند
و با استفاده از ابزارهای مثل Dot Net Reflector میشه بطور کامل سورس رو دید
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
با سلام
اگه بحث کرک و یا استفاده از نرم افزارهای دیکامپایل کننده پیش بیاد تو خود ریسورس هم قرار بدی باز می شه ریسورس کرد و فایل رو تغییر داد اما منظور منم این بوده که کاربر عادی نتونه فایل سورس mrt این نرم افزار رو تغییر بده با تشکر
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
PetekDincos
با سلام
اگه بحث کرک و یا استفاده از نرم افزارهای دیکامپایل کننده پیش بیاد تو خود ریسورس هم قرار بدی باز می شه ریسورس کرد و فایل رو تغییر داد اما منظور منم این بوده که کاربر عادی نتونه فایل سورس mrt این نرم افزار رو تغییر بده با تشکر
دوست عزیز اگه به پست اول دقت کنید :
نقل قول:
فكر كنيد يوزر با برنامه نويسي ارتباط دارد و با نصب محيط استيمل اطلاعات فايل را تغيير مي دهد
معلومه که کاربر یه کاربر عادی نیست
نقل قول:
اما منظور منم این بوده که کاربر عادی نتونه فایل سورس mrt این نرم افزار رو تغییر بده
و میتونه stimulreport رو نصب کنه و گزارش رو تغییر بده ولی وقتی گزارش تو ریسورس برنامه باشه دیگه نمیتونه این کار رو بکنه
فرض اینکه با ریسورسرها هم آشنایی داشته باشه فایل exe پروتکت شده دیگه دسترسی و تغییرش به اندازه اون dll آسون نیست
با تشکر
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
Esmail Solhkhah
اگه رو کامپوننت StiReport که رو فرم درگ کردید و دیزاینش کردید راست کلیک کرده و Property هاشو باز کنید
یه خاصیت داره بنام Save Report In Resource که گزارش رو تو ریسورسهای برنامه ذخیره میکنه
سلام
من کامپوننت روی فرم درگ نمی کنم
و همه چیز رو به صورت کد نویسی انجام میدم
آیا برای این شیوه هم راه حلی وجود داره ؟
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
PetekDincos
با سلام
شما می تونید از سورس گزارشتون یه DLL درست کرده و اون رو تو پوشه Debug قرار بدید و سورس گزارش را در داخل پرژتون قرار بدید به این صورت
StiReport Report = new StiReport();
Directory.CreateDirectory("Report");
string ReportName = "..//..//Report//MyRep.mrt";
string ReportDllName = "Report//MyRep.dll";
if (!File.Exists(ReportDllName))
{
Report.Load(ReportName);
Report.Compile(ReportDllName);
}
else
Report = StiReport.GetReportFromAssembly(ReportDllName);
Report.RegData("DataSourceName", MyList);
Report.ShowWithWpf();
و دیگه لازم نیست فایل *.mrt رو در خروجی قرار بدید با تشکر
با سلام
از این روش استفاده کنید با تشکر
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
PetekDincos
با سلام
از این روش استفاده کنید با تشکر
سلام
با چه ابزاری گزراشم رو به dll تبدیل کنم؟
تشکر
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
Sal_64
سلام
با چه ابزاری گزراشم رو به dll تبدیل کنم؟
تشکر
با سلام
ایزاری برای این کار نیاز نیست کد بالا خودش این کار رو انجام می ده شما نام سورس گزارش رو تو سورس برنامت بهش می دی و مسیر و نام فایل dll ای که می خواهی گزارش با اون نام و در اون مسیر ساخته بشه رو می دی در همون مسیر اگر فایل dll وجود داشت از اون استفاده کرده و گزارش رو اجرا می کنه اگر وجود نداشته باشه یک فایل dll با اون نامی که قرار دادی کامپایل کرده و از اون dll کامپایل شده استفاده کرده و گزارش رو اجرا می کنه با تشکر
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
PetekDincos
با سلام
ایزاری برای این کار نیاز نیست کد بالا خودش این کار رو انجام می ده شما نام سورس گزارش رو تو سورس برنامت بهش می دی و مسیر و نام فایل dll ای که می خواهی گزارش با اون نام و در اون مسیر ساخته بشه رو می دی در همون مسیر اگر فایل dll وجود داشت از اون استفاده کرده و گزارش رو اجرا می کنه اگر وجود نداشته باشه یک فایل dll با اون نامی که قرار دادی کامپایل کرده و از اون dll کامپایل شده استفاده کرده و گزارش رو اجرا می کنه با تشکر
سلام
ممنون از توضیحاتتون
میشه یه نمونه برنامه کوچیک بزارید و توی اون نحوه انجام اینکار رو نشون بدین
تشکر
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
Sal_64
سلام
من کامپوننت روی فرم درگ نمی کنم
و همه چیز رو به صورت کد نویسی انجام میدم
آیا برای این شیوه هم راه حلی وجود داره ؟
با سلام دوستان
آیا شما راه حلی برای سوالی که دستمون پرسیده دارید و دز ضمن برای اینکه بتونیم مسیر گزارشی که در سورس ذخیره شده را به متد Load آبجکت StiReport بدیم من از این شیوه استفاده می کنم
"..\\..\\MyReportName.mrt"
که در این حالت وقتی از داخل پوشه Debug به همراه خود پروژه اجرا می شه درسته ولی وقتی پوشه Debug رو تغییر مسیر می دم درست کار نمی کنه برای این چیکار کنم. با تشکر
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
PetekDincos
با سلام دوستان
برای اینکه بتونیم مسیر گزارشی که در سورس ذخیره شده را به متد Load آبجکت StiReport بدیم من از این شیوه استفاده می کنم
"..\\..\\MyReportName.mrt"
که در این حالت وقتی از داخل پوشه Debug به همراه خود پروژه اجرا می شه درسته ولی وقتی پوشه Debug رو تغییر مسیر می دم درست کار نمی کنه برای این چیکار کنم. با تشکر
سلام . چه دلیلی برای جابجای پوشه ریپورتها بعد از نصب در سیستم کاربر وجود داره؟ خب جابجاش نکنید
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
Sal_64
سلام . چه دلیلی برای جابجای پوشه ریپورتها بعد از نصب در سیستم کاربر وجود داره؟ خب جابجاش نکنید
من ریپورت ها رو در داخل خود گزارش قرار دادم و به صورت زیر آدرس می دم
..\\..\\MyReportName.mrt
و موقع دیباگ با vs چون فایل اجرایی داخل پوشه دیباگ می باشه درست کار می کنه ولی وقتی که می خوام فایل اجرایی رو از پوشه دیباگ بردارم و جایی دیگه ای استفاده کنم به خاطر اینکه این مسیر
..\\..\\
برای رسیدن به خود فایل گزارش دیگه وجود نداره خطا می ده فقط می خواستم که ببینم چطور باید گزارش ها رو در داخل پروژه ذخیره کنم . با تشکر
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
سلام- من چیز ویژوالی به برنامم اضافه نکردم و همه چی بصورت کد نویسی انجام شده -کاری که من کردم این بوده که در پوشه دیباگ فولدری قرار دادم و گزارشات داخل اون گذاشتم و در داخل برنامه آدرس دهی کردم و الان همراه با فایل اجراییم جابجاش میکنم و در سیستم کاربر قرار میدم
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
PetekDincos
من ریپورت ها رو در داخل خود گزارش قرار دادم و به صورت زیر آدرس می دم
..\\..\\MyReportName.mrt
و موقع دیباگ با vs چون فایل اجرایی داخل پوشه دیباگ می باشه درست کار می کنه ولی وقتی که می خوام فایل اجرایی رو از پوشه دیباگ بردارم و جایی دیگه ای استفاده کنم به خاطر اینکه این مسیر
..\\..\\
برای رسیدن به خود فایل گزارش دیگه وجود نداره خطا می ده فقط می خواستم که ببینم چطور باید گزارش ها رو در داخل پروژه ذخیره کنم . با تشکر
سلام - راههای مختلفی امتحان کردم و از برنامه هایی مثل smartassembly و ... هم استفاده کردم اما برنامه ها در زمان اجرا گزارشات به مشکل بر می خوردن - با استفاده از فیلم بسیار مفید این لیک میشه بدون مشکلی فایلهای گزارش و dll های استیمول به فایل اجرایی ضمیمه کرد که هم یکپارچگی برنامه در زمان جابجایی حفظ بشه و هم از دسترسی کاربر به فایل های گزارش جلوگیری میشه. http://s1.picofile.com/file/74859330...rtable.7z.html
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
با سلام
خود من با استفاده از پروتکتور Net Reactor بلدم فایلها رو چطور embed کنم اما برای خود من سواله که چرا وقتی می خواهی یه فایل سورس گزارش رو که در خود سورس برنامه قرار داده شده آدرس بدی اینطوری می شه باز ممنون از لطف شما . با تشکر
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
PetekDincos
با سلام
خود من با استفاده از پروتکتور Net Reactor بلدم فایلها رو چطور embed کنم اما برای خود من سواله که چرا وقتی می خواهی یه فایل سورس گزارش رو که در خود سورس برنامه قرار داده شده آدرس بدی اینطوری می شه باز ممنون از لطف شما . با تشکر
سلام - یعنی شما با دراگ کردن استیموال به روی فرم ،گزارشات ساختی ؟؟
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
با سلام
همین کاری که شما با WinRAR انجام دادید رو می شه با پروتکتورها و پکرها انجام داد من بایستی فایلهای mrt (سورس گزارش استیمول) رو کنار فایل اجرایی قرار بدم و با پروتکتور embed کنم تا کاربر عادی نتونه از اونها استفاده کنه . با تشکر
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
PetekDincos
با سلام
همین کاری که شما با WinRAR انجام دادید رو می شه با پروتکتورها و پکرها انجام داد من بایستی فایلهای mrt (سورس گزارش استیمول) رو کنار فایل اجرایی قرار بدم و با پروتکتور embed کنم تا کاربر عادی نتونه از اونها استفاده کنه . با تشکر
سلام- تشکر- من فایلها داخل فولدر میریختم که جواب نمی گرفتم - الان دقیقا شما چه انتظاری داری؟
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
PetekDincos
با سلام
شما می تونید از سورس گزارشتون یه DLL درست کرده و اون رو تو پوشه Debug قرار بدید و سورس گزارش را در داخل پرژتون قرار بدید به این صورت
StiReport Report = new StiReport();
Directory.CreateDirectory("Report");
string ReportName = "..//..//Report//MyRep.mrt";
string ReportDllName = "Report//MyRep.dll";
if (!File.Exists(ReportDllName))
{
Report.Load(ReportName);
Report.Compile(ReportDllName);
}
else
Report = StiReport.GetReportFromAssembly(ReportDllName);
Report.RegData("DataSourceName", MyList);
Report.ShowWithWpf();
و دیگه لازم نیست فایل *.mrt رو در خروجی قرار بدید با تشکر
با سلام
تو پست بالا توضیح دادم و برای اینکه بتونی از فایلهای گزارش در کنار فایل اجرایی استفاده کنی و کاربر نتونه فایل گزارش شما رو با نصب Designer استیمول بخونه یا تغییر بده به جای اینکه به dll تبدیلش کنی بهتره هنگام ذخیره گزارش با پسوند mrx ذخیره کنی و یه password بدی و هنگام لود گزارش هم با متد مربوطش لود کنی . با تشکر
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
سلام - شما نحوه تبدیل فایل mrt به dll توضیح میدید؟ و اینکه نحوه لود mrx هم کاملا شبیه mrt یا خیر ، میشه کدش رو بذارید ، تشکر
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
با سلام
نقل قول:
نحوه تبدیل فایل mrt به dll توضیح میدید؟
شما فایل mrt رو کنار فایل اجرایی برنامه قرار می دید و سپس با استفاده از کد زیر
StiReport Report = new StiReport();
Directory.CreateDirectory("Report");
string ReportName = "MyRep.mrt";
string ReportDllName = "MyRep.dll";
if (!File.Exists(ReportDllName))
{
Report.Load(ReportName);
Report.Compile(ReportDllName);
}
else
Report = StiReport.GetReportFromAssembly(ReportDllName);
Report.RegData("DataSourceName", MyList);
Report.ShowWithWpf();
که در کد بالا فایل MyRep.mrt فایل سورس گزارشه و MyRep.dll فایل dll هست که می خواهیم تولید کنیم و در یه شرط if بررسی می کنه که اگر فایل dll نبود فایل سورس گزارش رو لود میکنه و اون رو به صورت dll کامپایل می کنه و اگر هم بود اون رو با استفاده از دستور StiReport.GetReportFromAssembly(ReportDllName فراخوانی می کنه و بعد با استفاده از RegData دیتاسورس رو با استفاده از یه دیتاسورس پر می کنه و گزارش رو Show می کنه
اما در مورد mrx فایلهای گزارش به صورت Encrypt هستند و شما موقع ذخیره به اینصورت با استفاده از یه key فایل گزارش رو Enc می کنید و هنگام لود گزارش باید با استفاده از همون Key اون رو Dec کنید که با استفاده از دستور LoadEncryptedReport این کار انجام میشه . با تشکر
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
سلام PetekDincos ببخشید یک نمونه استفاده ازLoadEncryptedReport قرار میدی این روش که جالبه فایلها رمز گذاری میشه
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
دوستان سلام
این تاپیک به نتیجه نرسید و به نظر بنده بسیار هم تاپیک مهمی هست.
بنده هم همین سوال رو دارم. اگر ریپورت ها با پسوند mrt ذخیره بشن، بعد از نصب برنامه، کاربر میتونه با نصب استیمول سافت به فایل گزارش دسترسی داشته باشه.
چطور میشه از این کار جلوگیری کرد؟
بنده فرم گزارشم رو با استیمول دیزاینرش طراحی کردم و با Data Set و Data Table به دیتابیس وصل شدم و با سی شارپ اومدم فرم report1.mrt رو Load کردم.
اگر فرم رو به صورت mrx، mrz، cs و ... ذخیره کنیم، به نظر شما مناسب هست؟ اگر با پسوند .cs ذخیره کنیم چطور لودش کنیم؟
کد لود با پسوند mrt:
da = new SqlDataAdapter(com);
da.Fill(ds1, "tbname");
DataTable dt1 = ds1.Tables[0];
stiReport1.Load("report.mrt");
stiReport1.RegData(dt1);
stiReport1.Dictionary.Synchronize();
stiReport1.Compile();
stiReport1.ShowWithRibbonGUI();
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
خروجی به صورت کلاس سی شارپ بگیرید و ازش استفاده کنید.
https://barnamenevis.org/showthread.p...82%D8%B5%D8%AF
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
ممنون
نمونه کدی برای این مثال در دسترس دارین؟
-
نقل قول: امنيت در گزارشهاي stimulsoftrport
دوستان Render بهتر هست یا Show؟