Generate a secure double defined on range [0.0d – 1.0d] (both inclusive)

I need to know how to generate a secure double defined on range [0.0 – 1.0] both inclusive.
I generate two big ulong numbers with RNGCryptoServiceProvider class, make sure that the second number is greater or equals to the first number and then divide the first number by the second number and cast result to double. Ideally, numbers 0.0d and 1.0d should be included in this range, but they’re never included. It must be something with mantissa with double values. Do you know how to fix it?

How do I get IIS to return a Custom-Cache Control Header from WebApi 2, IIS 10 returns private every time

** UPDATE Jan 27, 2021 **
I have been working with Microsoft on this issue and we did a request trace and reviewed the FREB log and confirmed that the code is outputting the correct headers but in the END_REQUEST handler they are replaced with cache-control private. After building several virtual machines from scratch we learned that out of the box, this problem doesn’t happen. However when we install the latest version of STACKIFY AGENT (4.29.29) once we put the agent on this behavior happens. Older versions of Stackify agent (RETRACE profiler and APM) don’t do this, but so far, this is irreversible: once we install 4.29.29 of Stackify, uninstalling or installing older versions doesn’t undo this issue, the environment is somehow permanently modified.

How can I cleanly share a Custom Validator (ValidationAttribute) for a data model, a ViewModel, and a DTO in ASP.NET

I’m doing a ASP.NET MVC course. I’m building a REST Web API using ASP.NET WebAPI 2. The application also contains standard MVC 5 views. I’m using DTOs (Data Transfer Objects) to decouple the API from the data model. I’ve made a custom ValidationAttribute that I have applied to a property in my data model, and I’d like to use the same Validation attribute for a property on my DTO as well as a property ViewModel used in an MVC view.