Как мне реализовать функциональность AnonymousId\Anonymous User, найденную в (классическом 4.x) ASP.NET в ASP.NET Core 6 MVC
Я хочу реализовать или использовать функциональные возможности пользователя AnonymousId\Anonymous, имеющиеся в более старой системе ASP.NET MVC 4, но в приложении ASP.NET Core 6 MVC.
Я видел 3 пакета NuGet, которые, похоже, это делают, но 2 очень старые, а у третьего очень мало документации. В другом очень похожем вопросе пользователь KJensen (Использование анонимного идентификатора пользователя в ASP.NET Core 3.1, например Request.AnonymousID из .NET 4.x?) упомянул об использовании пакета NuGet (NuGet AnonymousID , но сказал, что обновил его для версии 3.1.
К сожалению, он не уточнил, и у меня нет очков репутации, чтобы оставить комментарий или спросить его (или я не мог понять, как это сделать). Я использую stackoverflow каждый день, но, очевидно, публикую мало.
Я многого не пробовал; Я включил пакет NuGet, о котором упоминал К. Дженсен, но, как он упомянул в своем ответе на свой вопрос, у него действительно было много зависимостей. Наверное, мне хотелось бы знать, как он его обновил и т. д. Надеюсь, это правильный механизм решения этой проблемы.
1 ответ
Его не нужно обновлять до версии. Вы можете найти соответствующую библиотеку классов в репозитории GitHub и использовать ее напрямую.
Например, я создаю библиотеку классов с именемAnonymousId
и скопируйте файл с GitHub в мою библиотеку классов:
Конечно, вам необходимо установить соответствующий пакет NuGet, чтобы он не сообщал об ошибке(Microsoft.AspNetCore.Http.Abstractions
,Microsoft.AspNetCore.Http.Features
иMicrosoft.IdentityModel.Tokens
):
Затем создайте свой проект в том же решении (ASP.NET Core 6 MVC):
Справочная библиотека классов:
<ItemGroup>
<ProjectReference Include="..\AnonymousId\AnonymousId.csproj" />
</ItemGroup>
Добавьте промежуточное ПО в Program.cs:
app.UseAnonymousId();
В контроллере:
public string Test()
{
string anonymousId = "";
IAnonymousIdFeature feature = HttpContext.Features.Get<IAnonymousIdFeature>();
if (feature != null)
{
anonymousId = feature.AnonymousId;
}
return anonymousId;
}
Результат испытаний:
Это то, чего ты хочешь?