When you need to integrate authorization with procedural code, you're going to need your application's ClaimsPrincipal object so that you can check the user's authorization claims. Here's both how to get to the ClaimsPrincipal and how to extend it with custom claims.
While security in ASP.NET Core is wholly claims based, you can still use the Authorize attribute to control access to your application. You just need to set up the right policies to work with the claims associated with the current user.
When it comes to controlling which users can access which functionality in a Blazor application you not only have access to all of the user’s authentication you can authorize the user’s actions without writing any code.
Once you've got a contract that describes a gRPC service, creating the service itself and a client that can call the service is easy. In fact, Visual Studio will do most of the work for you ... once you've got your projects set up correctly, that is.
gRPC services promise a lot: better performance, more sophisticated messaging, and a contract-based approach to Web Service development. If those sound good to you, here's how to get started.
You can store encrypted values in your ASP.NET Core configuration file and seamlessly decrypt the values as you retrieve them. But there are, at least, two issues that you'll need to address.
ASP.NET Core allows you to create Web Services based on gRPC ... which raises two questions: "What is gRPC?" and "Does it ever make sense to use it?" Here are Peter's answers.
Some of the critical problems for any team working in an Agile way are managing the backlog of user stories, converting epics into stories, preventing scope creep, and -- most importantly -- picking the most valuable stories for the next sprint. Impact mapping provides a visual solution for all these issues.
Sometimes it's just cool to take a walk through some technology to find all the different ways you can solve a problem -- sort of "Fun with the .NET Framework." Here's a look at all the ways that Peter could think of to update an object in a collection ... some of which may be foolish.
While the concept of "service classes" probably has some value when it comes to organizing the objects you're dealing with, the idea of a "service layer" has no value at all when it comes to building applications.
The beauty of a tag helper is it's ability to add new HTML to your page. Once you know what you want to change, here are the tools to change the HTML going to the user.
You can create your own custom tag helpers ... but it's a lot easier if you understand the process that tag helpers need to go through. Here are your options when gathering the data that a tag helper needs (and why they can't completely replace HtmlHelpers).
Whenever you have repeated HTML, you should be creating your own tag helpers to simplify your views. Here's how flexible tag helpers can be when you go to integrate them into your page.
.NET Core provides a framework that logging systems can be snapped into. However, what's most important about this framework is how you write your messages out. It's the quality of the message that will let you find where your problems are.
ExpandoObjects let you dynamically add members to your object at run time -- a great way to handle scenarios where you need a lot of flexibility. But how do you work with an object when you don't know the names of its properties?