نمایش نتایج 1 تا 3 از 3

نام تاپیک: مشکل MSCaptcha در UserControl با فشرده سازی ViewState

  1. #1
    کاربر دائمی آواتار hamedsabzian
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بروجرد
    پست
    314

    Question مشکل MSCaptcha در UserControl با فشرده سازی ViewState

    با سلام خدمت دوستان عزیز!
    من از کنترل MSCaptcha به عنوان تصویر امنیتی استفاده می کنم. و البته ViewState صفحات رو هم فشرده می کنم (خیلی حال میده! توصیه می کنم حتما این کار رو بکنید).
    تا حالا مشکلی نیست. این هم کد Captcha:
    <%@ Register Assembly="MSCaptcha" Namespace="MSCaptcha" TagPrefix="SecImage" %>

    <SecImage:CaptchaControl ID="CC1" runat="server" NoiseColor="MediumBlue" ForeColor="#3366FF"
    CaptchaHeight="40" CaptchaWidth="150" Font-Size="5px" ValidationGroup="A" CaptchaBackgroundNoise="Extreme"
    CaptchaLineNoise="High" FontColor="CornflowerBlue" LineColor="Cornsilk" />

    این هم به web.config اضافه شده:
        <httpHandlers>
    <add path="CaptchaImage.axd" verb="GET" type="MSCaptcha.CaptchaImageHandler, MSCaptcha" />
    </httpHandlers>


    وقتی MSCaptcha رو توی یک UserControl میزارم و UserControl رو توی صفحه، وقتی میخوام Captcha رو Validate کنم با خطایی مبنی بر این که Key مقدارش نباید null باشه مواجه میشم. (عکس در ضمایم موجود است). وقتی دیگه ViewState رو فشرده نمی کنم، مشکل حل میشه. (خارج UserControl ها در هردو حالت هیچ مشکلی نیست)
    Validate:
            CC1.ValidateCaptcha(TBCC.Text);
    if (!CC1.UserValidated)
    {
    Utility.ShowReport(Page, "کد امنیتی اشتباه است", MessageType.Error);
    return;
    }


    به نظر میاد MSCaptcha یه چیزی توی ViewState ذخیره میکنه و وقتی من Validation رو انجام میدم، هنوز ViewState بازیابی نشده، پس خطا میده.
    دوستان بزرگوار، لطف کنن بگن چرا این اتفاق می افته؟
    نمی تونم بیخیال استفاده از MSCaptch توی UserControl بشم. لطفا راه کار بدید.
    با تشکر!

    ضمایم:
    1. عکس پیغام خطا.
    2. MSCaptcha.dll (متاسفانه سورسش رو ندارم)
    عکس های ضمیمه عکس های ضمیمه
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله hamedsabzian : یک شنبه 23 خرداد 1389 در 18:55 عصر

  2. #2
    کاربر دائمی آواتار hamedsabzian
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بروجرد
    پست
    314

    نقل قول: مشکل MSCaptcha در UserControl با فشرده سازی ViewState

    من SavePageStateToPersistenceMedium و LoadPageStateFromPersistenceMedium رو برای Compressing و DeCompressing ویو استست override می کنم.
    آیا متد دیگه ای هست که به جای LoadPageStateFromPersistenceMedium استفاده کنم، به طوری که قبل از این که Captcha بخواد کاری بکنه، ViewState رو بازیابی کنه؟
    لطفا کمک کنید!
            private ObjectStateFormatter _formatter = new ObjectStateFormatter();
    protected override void SavePageStateToPersistenceMedium(object viewState)
    {
    System.IO.MemoryStream ms = new System.IO.MemoryStream();
    _formatter.Serialize(ms, viewState);
    byte[] viewStateArray = ms.ToArray();
    ClientScript.RegisterHiddenField("__COMPRESSEDVIEW STATE", Convert.ToBase64String(CompressViewState.Compress( viewStateArray)));
    }
    protected override object LoadPageStateFromPersistenceMedium()
    {
    string vsString = Request.Form["__COMPRESSEDVIEWSTATE"];
    byte[] bytes = Convert.FromBase64String(vsString);
    bytes = CompressViewState.Decompress(bytes);
    return _formatter.Deserialize(Convert.ToBase64String(byte s));
    }

  3. #3
    کاربر دائمی آواتار hamedsabzian
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بروجرد
    پست
    314

    نقل قول: مشکل MSCaptcha در UserControl با فشرده سازی ViewState

    به نظرتون مشکل از این Handler نیست؟
        <httpHandlers>
    <add path="CaptchaImage.axd" verb="GET" type="MSCaptcha.CaptchaImageHandler, MSCaptcha" />
    </httpHandlers>

    اساتید بزرگ، نظری ندارن؟
    اگه راه حل راه حل اینه که بی خیال MSCaptcha بشم و برم سراغ یه Captcha دیگه، اشکال نداره! ولی خواهش می کنم منو تنها نزارید!

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •