Adding claims when signing inWhy is it important to override GetHashCode when Equals method is overridden?When to use struct?When to use .First and when to use .FirstOrDefault with LINQ?decimal vs double! - Which one should I use and when?Is there a way to skip password typing when using https:// on GitHub?How and when to use ‘async’ and ‘await’Using ASP.NET Web API, my ExecutionContext isn't flowing in async actionsStore jwt claims in cookies using owinUnable to find Use.RunTimePageInfo() method in startup.cs file in aspnet coreCan authentication cookie be shared between two .Net Core 2.0 applications?

How to test the sharpness of a knife?

How to preserve electronics (computers, iPads and phones) for hundreds of years

Why the "ls" command is showing the permissions of files in a FAT32 partition?

If the only attacker is removed from combat, is a creature still counted as having attacked this turn?

Deciphering cause of death?

What is this high flying aircraft over Pennsylvania?

Giving feedback to someone without sounding prejudiced

How were servants to the Kaiser of Imperial Germany treated and where may I find more information on them

Why is the sun approximated as a black body at ~ 5800 K?

Sound waves in different octaves

Check if object is null and return null

In One Punch Man, is King actually weak?

Quoting Keynes in a lecture

Is there a RAID 0 Equivalent for RAM?

Showing mass murder in a kid's book

Determining multivariate least squares with constraint

Overlapping circles covering polygon

Storage of electrolytic capacitors - how long?

Telemetry for feature health

Should I warn a new PhD Student?

How would a solely written language work mechanically

Typing CO_2 easily

What is the meaning of "You've never met a graph you didn't like?"

Are Captain Marvel's powers affected by Thanos breaking the Tesseract and claiming the stone?



Adding claims when signing in


Why is it important to override GetHashCode when Equals method is overridden?When to use struct?When to use .First and when to use .FirstOrDefault with LINQ?decimal vs double! - Which one should I use and when?Is there a way to skip password typing when using https:// on GitHub?How and when to use ‘async’ and ‘await’Using ASP.NET Web API, my ExecutionContext isn't flowing in async actionsStore jwt claims in cookies using owinUnable to find Use.RunTimePageInfo() method in startup.cs file in aspnet coreCan authentication cookie be shared between two .Net Core 2.0 applications?













0















Days I'm strugling with new Authentication in .NET Core 2.2
Here what I've :



 public void ConfigureServices(IServiceCollection services)

services.AddAuthentication(options => options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>

options.LoginPath = $"/apiCookieAuthenticationDefaults.LoginPath";
options.LogoutPath = $"/apiCookieAuthenticationDefaults.LogoutPath";
options.EventsType = typeof(MyEvents);
);
services.AddScoped<MyEvents>();


public class MyEvents : CookieAuthenticationEvents
{
public async override Task SignedIn(CookieSignedInContext context)

// do some checks
// add cookie to CookieManager >> WORKS WELL
// add claims to Principal >> NOT WORKING

if (error)
await context.HttpContext.SignOutAsync(scheme); context.Principal = null ;


public async override Task ValidatePrincipal(CookieValidatePrincipalContext context)

// idea here is to check if claims are already set, if not add them
if (context.Principal.HasClaim(c => c.Type == ClaimTypes.NameIdentifier))
return;

// time consuming claims search
// add claims here : WORKS but only for this instance



Problem



Adding claims in SignedIn does absolutely nothing, when back in calling method, claims are not set.



Adding claims in ValidatePrincipal only works for the current [Authorize] check. Each time I'm entering this method claims are no more set.



I would like to avoid a time consuming process of searching claims. Is there a safer way to add them once for the session?



Cheers,










share|improve this question


























    0















    Days I'm strugling with new Authentication in .NET Core 2.2
    Here what I've :



     public void ConfigureServices(IServiceCollection services)

    services.AddAuthentication(options => options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(options =>

    options.LoginPath = $"/apiCookieAuthenticationDefaults.LoginPath";
    options.LogoutPath = $"/apiCookieAuthenticationDefaults.LogoutPath";
    options.EventsType = typeof(MyEvents);
    );
    services.AddScoped<MyEvents>();


    public class MyEvents : CookieAuthenticationEvents
    {
    public async override Task SignedIn(CookieSignedInContext context)

    // do some checks
    // add cookie to CookieManager >> WORKS WELL
    // add claims to Principal >> NOT WORKING

    if (error)
    await context.HttpContext.SignOutAsync(scheme); context.Principal = null ;


    public async override Task ValidatePrincipal(CookieValidatePrincipalContext context)

    // idea here is to check if claims are already set, if not add them
    if (context.Principal.HasClaim(c => c.Type == ClaimTypes.NameIdentifier))
    return;

    // time consuming claims search
    // add claims here : WORKS but only for this instance



    Problem



    Adding claims in SignedIn does absolutely nothing, when back in calling method, claims are not set.



    Adding claims in ValidatePrincipal only works for the current [Authorize] check. Each time I'm entering this method claims are no more set.



    I would like to avoid a time consuming process of searching claims. Is there a safer way to add them once for the session?



    Cheers,










    share|improve this question
























      0












      0








      0


      1






      Days I'm strugling with new Authentication in .NET Core 2.2
      Here what I've :



       public void ConfigureServices(IServiceCollection services)

      services.AddAuthentication(options => options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme)
      .AddCookie(options =>

      options.LoginPath = $"/apiCookieAuthenticationDefaults.LoginPath";
      options.LogoutPath = $"/apiCookieAuthenticationDefaults.LogoutPath";
      options.EventsType = typeof(MyEvents);
      );
      services.AddScoped<MyEvents>();


      public class MyEvents : CookieAuthenticationEvents
      {
      public async override Task SignedIn(CookieSignedInContext context)

      // do some checks
      // add cookie to CookieManager >> WORKS WELL
      // add claims to Principal >> NOT WORKING

      if (error)
      await context.HttpContext.SignOutAsync(scheme); context.Principal = null ;


      public async override Task ValidatePrincipal(CookieValidatePrincipalContext context)

      // idea here is to check if claims are already set, if not add them
      if (context.Principal.HasClaim(c => c.Type == ClaimTypes.NameIdentifier))
      return;

      // time consuming claims search
      // add claims here : WORKS but only for this instance



      Problem



      Adding claims in SignedIn does absolutely nothing, when back in calling method, claims are not set.



      Adding claims in ValidatePrincipal only works for the current [Authorize] check. Each time I'm entering this method claims are no more set.



      I would like to avoid a time consuming process of searching claims. Is there a safer way to add them once for the session?



      Cheers,










      share|improve this question














      Days I'm strugling with new Authentication in .NET Core 2.2
      Here what I've :



       public void ConfigureServices(IServiceCollection services)

      services.AddAuthentication(options => options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme)
      .AddCookie(options =>

      options.LoginPath = $"/apiCookieAuthenticationDefaults.LoginPath";
      options.LogoutPath = $"/apiCookieAuthenticationDefaults.LogoutPath";
      options.EventsType = typeof(MyEvents);
      );
      services.AddScoped<MyEvents>();


      public class MyEvents : CookieAuthenticationEvents
      {
      public async override Task SignedIn(CookieSignedInContext context)

      // do some checks
      // add cookie to CookieManager >> WORKS WELL
      // add claims to Principal >> NOT WORKING

      if (error)
      await context.HttpContext.SignOutAsync(scheme); context.Principal = null ;


      public async override Task ValidatePrincipal(CookieValidatePrincipalContext context)

      // idea here is to check if claims are already set, if not add them
      if (context.Principal.HasClaim(c => c.Type == ClaimTypes.NameIdentifier))
      return;

      // time consuming claims search
      // add claims here : WORKS but only for this instance



      Problem



      Adding claims in SignedIn does absolutely nothing, when back in calling method, claims are not set.



      Adding claims in ValidatePrincipal only works for the current [Authorize] check. Each time I'm entering this method claims are no more set.



      I would like to avoid a time consuming process of searching claims. Is there a safer way to add them once for the session?



      Cheers,







      c# authentication cookies .net-core






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 7 at 21:51









      Arnaud F.Arnaud F.

      5,54264086




      5,54264086






















          0






          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55053369%2fadding-claims-when-signing-in%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55053369%2fadding-claims-when-signing-in%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          How to get text form Clipboard with JavaScript in Firefox 56?How to validate an email address in JavaScript?How do JavaScript closures work?How do I remove a property from a JavaScript object?How do you get a timestamp in JavaScript?How do I copy to the clipboard in JavaScript?How do I include a JavaScript file in another JavaScript file?Get the current URL with JavaScript?How to replace all occurrences of a string in JavaScriptHow to check whether a string contains a substring in JavaScript?How do I remove a particular element from an array in JavaScript?

          Can't initialize raids on a new ASUS Prime B360M-A motherboard2019 Community Moderator ElectionSimilar to RAID config yet more like mirroring solution?Can't get motherboard serial numberWhy does the BIOS entry point start with a WBINVD instruction?UEFI performance Asus Maximus V Extreme

          List of MPs elected to the English parliament in 1640 (April) Contents List of constituencies and members See also Notes References Navigation menueNational Archives – The Glynde Place ArchivesCobbett's Parliamentary history of England, from the Norman Conquest in 1066 to the year 1803'Aldermen in Parliament', The Aldermen of the City of London: Temp. Henry III – 1912onepage&q&f&#61, false 229