Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if user is logged in with Token Based Authentication in ASP.NET Core

I managed to implement this token based authentication system in my application, but I have a little question. How can I check if a user is signed it (eg if the there is a valid token in the request) within the method? So with the [Authorize] ?

So I have controller, and in that controller I want to check if the user is signed in. I thought of using this:

if (_signInManager.IsSignedIn(ClaimsPrincipal.Current))
{
    ...
}

but it does not work since ClaimsPrincipal.Current is always null

like image 342
user2657943 Avatar asked Dec 24 '16 18:12

user2657943


People also ask

What is AddIdentityServerJwt?

AddIdentityServerJwt. This helper method configures a policy scheme for the app as the default authentication handler.


2 Answers

You don't need to use the SigninManager or something similar. The user is injected on the pipeline (on the User property of the base controller) and it's info is filled automatically by the authentication middleware (cookie or token). So, on your controller:

bool isAuthenticated = User.Identity.IsAuthenticated;
like image 99
Vi100 Avatar answered Oct 01 '22 08:10

Vi100


yes . put [Authorize] attribute above your class or methods to check if user is authenticate or not. You can get user by this code:

var principal = User as ClaimsPrincipal;
var check = User.Identity.IsAuthenticated;
like image 23
Mostafa Esmaeili Avatar answered Oct 04 '22 08:10

Mostafa Esmaeili