Что такое простой / достойный способ шифрования файлов cookie в ASP.NET Core без использования IDataProtector? - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь понять, как зашифровать содержимое файлов cookie в ASP.NET Core 2.1.

Если я использую метод IDataProtector Protect для шифрования содержимого cookie, я прочитал, что метод Unprotect не сможет расшифровать, если веб-сайт будет перемещен на другой сервер, работающий в ферме серверов Azure.и т. д. Если это правда, и я не хочу использовать Redis (или перемещать ключи) и иметь возможность использовать простой метод для шифрования содержимого, как бы я поступил об этом?

Это моетекущий код (с использованием IDataProtector):

    public static void SetEncryptedCookie()
    {
        var cookieData = new Dictionary<string, string>()
        {
            { "a", "123" },
            { "b", "xyz" },
            { "c", DateTime.Now.ToString() },
            { "UserID", "unique-number-789" }
        };

        CookieOptions options = new CookieOptions
        {
            Expires = DateTime.Now.AddDays(90)
            ,HttpOnly = true
            ,Secure = true
            ,IsEssential = true // GDPR
            ,Domain = ".example.org"
        };

        // _dataProtector = provider.CreateProtector("somepurpose");
        string protectedCookie = _dataProtector.Protect(cookieData);

        // IHttpContextAccessor _accessor
        // write cookie to http response 
        _accessor.HttpContext.Response.Cookies.Append("mycookie", protectedCookie, options);

        // retrieve encrypted cookie contents.
        // ##### this will fail in server farms.
        var cookieEnc = _accessor.HttpContext.Request.Cookies["mycookie"];
        var cookieDec =  _dataProtector.Unprotect(cookieEnc);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...