About .NET, ASP.NET, MVC, C#, WPF, WCF and everything related to .NET and more.

Captcha Mvc [Хранение значений капчи]

Для хранения значений капчи используется интерфейс IStorageProvider, его определение выглядит так:

/// <summary>
/// Represents the storage to save a captcha tokens.
/// </summary>
public interface IStorageProvider
{
    /// <summary>
    /// Adds the specified token and <see cref="ICaptchaValue"/> to the storage.
    /// </summary>
    /// <param name="captchaPair">The specified <see cref="KeyValuePair{TKey,TValue}"/></param>
    void Add(KeyValuePair<string, ICaptchaValue> captchaPair);

    /// <summary>
    /// Gets the <see cref="ICaptchaValue"/> associated with the specified token.
    /// </summary>
    /// <param name="token">The token of the value to get.</param>
    /// <returns>When this method returns, contains the value associated with the specified token,
   ///if the token is found; otherwise, return <c>null</c> value.</returns>
    ICaptchaValue GetDrawingValue(string token);

    /// <summary>
    /// Gets the <see cref="ICaptchaValue"/> associated with the specified token.
    /// </summary>
    /// <param name="token">The token of the value to get.</param>
    /// <returns>When this method returns, contains the value associated with the specified token, 
    /// if the token is found; otherwise, return <c>null</c> value.</returns>
    ICaptchaValue GetValidationValue(string token);
}

Метод Add отвечает за добавление значения капчи.
Метод GetDrawingValue возвращает для заданного токена значение капчи для отрисовки.
Метод GetDrawingValue возвращает для заданного токена значение капчи для валидации.
По умолчанию, во всех реализация значение, удаляется после первого его запроса.

Вам доступно две реализации:
  • CookieStorageProvider - использует cookie для хранения значений капчи.
  • SessionStorageProvider - использует сессию для хранения значений капчи.
Пример как задать провайдер для хранения капчи:
protected void Application_Start()
{
    CaptchaUtils.CaptchaManager.StorageProvider = new CookieStorageProvider();
    ..............

Комментарии
Оставить комментарий
*bold*
_italics_
+underline+
* Bullet List
** Bullet List 2
# Number List
## Number List 2
{"Do not apply formatting"}
{code:language} code here {code:language}.
Supports: aspx c#, c#, c++, html, sql, xml
[url:http://www.example.com]