Доступны ли ProfileBase, HttpContext.Request.AnonymousId как часть пакета ASP.Net Core 2.x? Если так, как я могу получить к ним доступ. - PullRequest
0 голосов
/ 10 ноября 2018

В настоящее время я пытаюсь перенести приложение ASP.Net MVC API 4.6.2 в ASP.Net Core 2.1.

     private static string GetSessionId()
    {
        // Get from the session state, most reliable, but not likely available
        if (HttpContext.Current.Session != null && !string.IsNullOrEmpty(HttpContext.Current.Session.SessionID))
        {
            return HttpContext.Current.Session.SessionID;
        }

        // if the application has enabled anonymous tracking, then this is also reliable
        // (note: this requires <anonymousIdentification enabled="true" /> in the web.onfig.
        if (HttpContext.Current.Profile.IsAnonymous &&
            !string.IsNullOrEmpty(HttpContext.Current.Request.AnonymousID))
        {
            return HttpContext.Current.Request.AnonymousID;
        }

        // last resort, we track this ourselves.
        var telemetryId = HttpContext.Current.Request.Cookies[TelemetryKey] != null
            ? HttpContext.Current.Request.Cookies[TelemetryKey].Value
            : Guid.NewGuid().ToString();
        var telemetryCookie = new HttpCookie(TelemetryKey, telemetryId) { Expires = DateTime.Now.AddYears(1) };
        HttpContext.Current.Response.SetCookie(telemetryCookie);

        return telemetryId;
    }

Сейчас в версии .Net Core я не могу найти эквиваленты.И да, я зарегистрировал IHttpContextAccessor через ConfigureServices () и могу получить к нему доступ в этом классе обслуживания.Но текущий HttpContext, похоже, не обладает всеми свойствами, которые предлагает пространство имен Sytem.Web.Http.

Есть ли альтернативы, чтобы проверить, является ли пользователь аноанимальным?

    (HttpContext.Current.Profile.IsAnonymous && 
    string.IsNullOrEmpty(HttpContext.Current.Request.AnonymousID))

Кроме того, было бы замечательно, если бы были сделаны какие-либо предложения относительно сохранения вызовов Http в стандартной библиотеке классов .Net.

Заранее спасибо.

1 Ответ

0 голосов
/ 12 ноября 2018

Обнаружено, что AnonymousId был прекращен в .Net Core из-за его незначительного использования и при необходимости должен быть реализован через специальное промежуточное программное обеспечение. При написании пользовательского промежуточного программного обеспечения для достижения того же самого я обнаружил, что кто-то уже прошел этот путь и написал пользовательское промежуточное программное обеспечение, которое можно найти по следующей ссылке: https://github.com/aleripe/AnonymousId

Это сэкономило мне много времени и надеюсь, что оно потратит и ваше, если вы ищете что-то подобное.

К вашему сведению: я не мог найти много информации о библиотеке ProfileBase в .Net Core.

...