PDA

View Full Version : سوال: مشکل در مورد url Encrypt



omidghadiri
پنج شنبه 08 مهر 1389, 21:27 عصر
باعرض سلام خدمت مدیران محترم سایت و بازدید کنندگان گرامی


دوستان من یه مشکل دارم و این هم در مورد url هاست .

بنده پروژه ای دارم که در اون با استفاده از متد رمز نگاری و URL Encrypt یک آدرس صفحه رو به کد تبدیل میکنه.

وقتی پروژه داخل ویژوال استادیو برده میشه و اونجا Run میشه هیچ مشکلی نداره و به خوبی صفحه بالا میاد ولی وقتی سایت Publish میشه و داخل IIS برده میشه لازم به ذکر هست که سیستم عامل بنده windows 2003Server هست ، وقتی داخلش پروژه رو اجرا میکنم صفحه Index.ASPX به خوبی بالا میاد و اجرا میشه ولازم به ذکر است که صفحه اول یعنی صفحه Index.ASPX از متد رمز نگاری استفاده نشده و آدرس واقعی صفحه داده میشه و اینکه وقتی روی لینکی که قرار بره داخل اون صفحه مثلا Register.aspx ، با ارور مواجه میشم و این ارور برمیخورم



The page cannot be found


The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.


Please try the following:
Make sure that the Web site address displayed in the address bar of your browser is spelled and formatted correctly.
If you reached this page by clicking a link, contact the Web site administrator to alert them that the link is incorrectly formatted.
Click the Back button to try another link.
HTTP Error 404 - File or directory not found.
Internet Information Services (IIS)




Technical Information (for support personnel)
Go to Microsoft Product Support Services and perform a title search for the words HTTP and 404.
Open IIS Help, which is accessible in IIS Manager (inetmgr), and search for topics titled Web Site Setup, Common Administrative Tasks, and About Custom Error Messages.



وحال اگر آدرس واقعی صفحه رو مینویسیم به خوبی صفحه بالا میاد ، قصد دارم بدونم اشکال من کجای این عملیات هست که آیا IIS باURL Encrypt مشکل داره که میدونم قطعا مشکلی نداره ، مشکل کار بنده کجاست.
لازم به ذکر هست که بنده تمام دسترسی های لازم رو دادم .


لطفا کمکم کنید با تشکر.

mehdi.mousavi
جمعه 09 مهر 1389, 15:33 عصر
سلام.
URL Encoding منظورتون بود، یا نه، URL Encrypting؟ این دو از هم متفاوتن...
در هر حال، پیامی که می گیرید مبین این مساله هستش که Page مورد تقاضا در آدرس مورد نظر وجود نداره. حالا ممکنه Virtual Directory ی سرور درست تعیین نشده باشه (یا به مسیر دیگه ای غیر اون چیزی که شما انتظار دارید، اشاره کنه)، ممکنه DNS درست کار نکنه و Domain Name شما به جای دیگه ای Route بشه (نه اون IP Address ای که انتظار دارید) و ... باید دونه به دونه این مسائل رو بررسی کنید تا به نتیجه برسید.

موفق باشید.

پاورقی: شاید مشکل واقعا از Encode کردن URL باشه (که قدری بعید میدونم، چون اگر از HttpServerUtility.UrlEncode (http://msdn.microsoft.com/en-us/library/zttxte6w.aspx) استفاده کرده باشید، دیگه مشکلی در این زمینه وجود نخواهد داشت). با اینحال، اگر اصرار دارید که اشکال بخاطر کدی هستش که نوشته اید، لطفا اون بخش از کد رو که وظیفه Encode کردن URL ها رو داره اینجا قرار بدید تا ببینم مشکل از کجاست.

omidghadiri
جمعه 09 مهر 1389, 21:12 عصر
با تشکر از پاسخ شما جناب آقای موسوی

خدمت شما عرض کنم ، بنده از هیچ کدام از اینهائی که شما فرمودین استفاده نکردم ولی هیچ مشکلی در فرخوانی آدرس صفحه با عملیات رمز نگاری ، به وجود نیامده.
ولی متعجبم از اینکه در ویژوال استادیو به خوبی کارمیکنه ولی متأسفانه در IIS مشکل به وجود میاره .

لطفا کمی بیشتر کمکم کنید واگر امکانش باشه این لطف رو بکنین که یه نمونه پروژه Sample برای دانلود بگذارین با تشکر از شما.

mehdi.mousavi
جمعه 09 مهر 1389, 22:11 عصر
خدمت شما عرض کنم ، بنده از هیچ کدام از اینهائی که شما فرمودین استفاده نکردم ولی هیچ مشکلی در فرخوانی آدرس صفحه با عملیات رمز نگاری ، به وجود نیامده. ولی متعجبم از اینکه در ویژوال استادیو به خوبی کارمیکنه ولی متأسفانه در IIS مشکل به وجود میاره .

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

موفق باشید.

omidghadiri
شنبه 10 مهر 1389, 08:05 صبح
بازهم سپاسگذارم از اینکه پاسخ دادید.


خدمت شما عرض کنم ، درمورد عملیات رمز نگاری منظوربنده این بود که بنده یک کلاسی نوشتم که یک کد رندم Random Cod تولید میکنه وبه عنوان مثال صفحه اصلی و یابهتره بگم نام حقیقی صفحه وآدرس واقعی به این صورت هست:




http://....../registerr.aspx/ (http://....../registerr.aspx/)


که زمانی که با استفاده از کد رندم Random Cod این آدرس به کدی نظیر این درمیاد


http://........./57498B8D6E83860A89EA (http://........./57498B8D6E83860A89EA)


.................................................. ........
وحالا برای فهماندن و برنامه نویسی عملیات کد رو به این صورت نوشتم.


وقتی که قصد دارم روی لینکی کلیک کنم که به صفحه مورد نظر وارد بشه (صفحهhttp://........./57498B8D6E83860A89EA (http://........./57498B8D6E83860A89EA) ) در رویداد کلیک این خط کد نوشته شده



Response.Redirect(cod.cod_path);

ووقتی صفحه مورد نظر کامل لود Load شد این دستور را در Load صفحه می نویسم.
Context.RewritePath(cod.cod_path);

وحالا برای فهماندن اینکه وقتی این کد داده شده به عنوان یک صفحه در فایل Global.asax به این صورت عمل کردم:






protected void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.Url.ToString().Contains(cod.cod_path))
{
Context.RewritePath("Registerr.aspx");


}



}




ممنون میشم که یک نمونه پروژه در این مورد بگذارید و یا اینکه اشکالات کارمن رو بفرمائید.

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


باتشکر.

omidghadiri
شنبه 10 مهر 1389, 17:26 عصر
از مدیران ارشد و با تجربه و کاربران متخصص تقاضا میکنم که کمک کنند ، چراکه این پروژه بنده تنها علت تأخیرش این هست که تنها این بخشش غیرفعال هست.

منتظر کمکهای شما هستم.

omidghadiri
یک شنبه 11 مهر 1389, 11:53 صبح
بازهم از مدیران ارشد وکاربران متخصص ، خواهشمندیم که جواب سئوال بنده رو بدن

PhoenixNet
یک شنبه 11 مهر 1389, 12:42 عصر
با سلام

نکته اول اینکه Visual studio server با IIS تفاوت هایی داره .بعضی امکانات در IIS وجود ندارد.
در IIS وقتی درخواستی به سرور میرسد با توجه به پسوند فایل IIS ماژول متناسب را فراخوانی می کند.مثلا صفحه aspx به ماژول .NET ارسال می شود ولی در Visual studio تمام درخواست ها تحویل ماژول .Net می شود.

شما باید برای اینکه درخواستتون به موتور .NET تحویل شود به اخر ادرستون .ASPX اضافه نمایید.




http://........./57498B8D6E83860A89EA (http://........./57498B8D6E83860A89EA)

تبدیل شود به

http://........./57498B8D6E83860A89EA (http://........./57498B8D6E83860A89EA).aspx

omidghadiri
یک شنبه 11 مهر 1389, 14:14 عصر
با سلام

نکته اول اینکه Visual studio server با IIS تفاوت هایی داره .بعضی امکانات در IIS وجود ندارد.
در IIS وقتی درخواستی به سرور میرسد با توجه به پسوند فایل IIS ماژول متناسب را فراخوانی می کند.مثلا صفحه aspx به ماژول .NET ارسال می شود ولی در Visual studio تمام درخواست ها تحویل ماژول .Net می شود.

شما باید برای اینکه درخواستتون به موتور .NET تحویل شود به اخر ادرستون .ASPX اضافه نمایید.




http://........./57498B8D6E83860A89EA (http://........./57498B8D6E83860A89EA)

تبدیل شود به

http://........./57498B8D6E83860A89EA (http://........./57498B8D6E83860A89EA).aspx








با سپاس فراوان از پاسخ شما وبسیار عالی بود.