我正在开发ASP NET Core Web API,我对选择身份验证方法感到困惑.我曾经应用默认的Asp Net Identity身份验证,但最近我知道JWT.所以我几乎像在本文中所做的那样实现了身份验证:https://stormpath.com/blog/token-authentication-asp-net-core.但我无法理解这个JWT的好处.使用简单的Asp Net身份验证,我不关心令牌存储等.我只需要使用signInManager登录并使用授权方法直到注销.使用JWT,我需要考虑令牌存储,到期和其他困难.那么,这个JWT的好处是什么?如何在登录后存储此JWT令牌?此外,我应该使用这个JWT吗?就我而言,我需要对简单的WebApi进行简单的身份验证,这将由一个或多一点的用户使用.我也听说过OpenIddict,Auth0,IdentityServer,那么所有这些认证机制之间的区别是什么?
authentication jwt asp.net-identity asp.net-core asp.net-core-webapi
我有两个组件:
- 在Ubuntu OS上运行的.Net Core Application.
- C++共享库(.so)
现在我希望C++组件能够调用.Net Core方法,将接口传递给C++组件,该组件将使用此接口进行回调方法实现或将方法作为参数传递给C++组件.
我想要实现的高级示例:
C#组件:
public interface IDevice
{
void OnDataAvailable(string data);
}
public class Device: IDevice
{
[DllImport("sampleCPPLibrary.so")]
private static extern int SetReceiver(IDevice receiver);
public void OnDataAvailable(string data)
{
Console.WriteLine(data);
}
public void Initialize()
{
SetReceiver(IDevice(this))
}
}
Run Code Online (Sandbox Code Playgroud)
C++组件:
extern "C" {
void SetReceiver(IReceiver * receiver)
{
receiver->OnDataAvailable(10);
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,我想要做的只是将某种"回调"传递给C++组件,并在C++组件中发生某些事件时调用此"回调".