https://github.com/bigbuildbench/netdevpack_security.identity
https://github.com/bigbuildbench/netdevpack_security.identity
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.7%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: BigBuildBench
- License: mit
- Language: C#
- Default Branch: master
- Size: 238 KB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
What is the .NET DevPack.Identity?
.NET DevPack Identity is a set of common implementations to help you implementing ASP.NET Identity, JWT, claims validation and another facilities
Give a Star! :star:
If you liked the project or if NetDevPack helped you, please give a star ;)
Get Started
| Package | Version | Popularity |
| ------- | ----- | ----- |
| NetDevPack.Identity | |
|
.NET DevPack.Identity can be installed in your ASP.NET Core application using the Nuget package manager or the dotnet CLI.
dotnet add package NetDevPack.Identity
If you want to use our IdentityDbContext (ASP.NET Identity standard) you will need to create the Identity tables. Set your connection string in the appsettings.json and follow the next steps:
Add the IdentityDbContext configuration in your startup.cs:
csharp
services.AddIdentityEntityFrameworkContextConfiguration(options =>
options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"),
b=>b.MigrationsAssembly("AspNetCore.Jwt.Sample")));
Note: You must inform the namespace to avoid migration errors
Note: You must install the
Microsoft.EntityFrameworkCore.SqlServeror another provider likeNpgsql.EntityFrameworkCore.PostgreSQLpackage to have support from your database. Find the package for your database here
Add the Identity configuration in ConfigureServices method of your startup.cs:
csharp
services.AddIdentityConfiguration();
Note: This extension returns an IdentityBuilder to allow you extending the configuration
Add the Identity configuration in Configure method of your startup.cs:
csharp
app.UseAuthConfiguration();
Note: This method need to be set between
app.UseRouting()andapp.UseEndpoints()
Run the command to generate the migration files:
dotnet ef migrations add Initial --context NetDevPackAppDbContext --project <Your patch>/<Your Project>.csproj
Run the command to generate the database:
dotnet ef database update --context NetDevPackAppDbContext --project <Your patch>/<Your Project>.csproj
Note: If are you using your own
IdentityDbContextyou must change theNetDevPackAppDbContextvalue to your context class name in the commands above.
After execute this steps you will be all set to use the Identity in your Application.
Configuring JWT
If you want to generate JSON Web Tokens in your application you need to add the JWT configuration in ConfigureServices method of your startup.cs
csharp
services.AddJwtConfiguration(Configuration)
.AddNetDevPackIdentity<IdentityUser>();
Set your appsettings.json file with this values:
json
"AppJwtSettings": {
"Audience": "MyApplication.Name"
}
It's possible to configure some aspects of token
|Key|Meaning|Default
|--|--|---|
|Expiration| Expiration time (in hours) | 1 |
|Issuer| The party that "created" the token and signed it with its private key. Usually the application Url | Get current root Url from HttpContext |
|Audience| API's that should accept the token. E.g your application Main name. | NetDevPack |
|RefreshTokenExpiration | Refresh token expiration (In Days) | 30 |
|RefreshTokenType | OneTime or ReUse | 30 |
|SecretKey Deprecated | Is your key to build JWT. Read notes| Do not use it |
Note: Now we are using NetDevPack.Security.Jwt to generate and Store your keys. It generate a RSA 2048 by default. You can check the project for more info.
Generating JWT
You will need to set a single dependency in your Authentication Controller:
csharp
public AuthController(IJwtBuilder jwtBuilder)
{
_jwtBuilder = jwtBuilder;
}
After user register or login process you can generate a JWT to respond the request. Use our implementation, you just need inform the user email and the dependencies injected in your controller:
csharp
return _jwtBuilder
.WithEmail(email)
.WithRefreshToken()
.BuildToken();
Note: This builder can return a single string with JWT or a complex object
UserResponseif you want return more data than a single JWT string.
Adding Claims to your JWT
You can call more methods in JwtBuilder to provide more information about the user:
csharp
return _jwtBuilder
.WithEmail(email)
.WithJwtClaims()
.WithUserClaims()
.WithUserRoles()
.WithRefreshToken()
.BuildToken();
|Method|Meaning|
|--|--|
|WithJwtClaims()| Claims of JWT like sub, jti, nbf and others |
|WithUserClaims()| The user claims registered in AspNetUserClaims table|
|WithUserRoles()| The user roles (as claims) registered in AspNetUserRoles table |
|BuildToken()| Build and return the JWT as single string |
If you want return your complex object UserResponse you need to change the last method to:
csharp
return _jwtBuilder
.WithEmail(email)
.WithJwtClaims()
.WithUserClaims()
.WithUserRoles()
.WithRefreshToken()
.BuildUserResponse();
Examples
Use the sample application to understand how NetDevPack.Identity can be implemented and help you to decrease the complexity of your application and development time.
Compatibility
The NetDevPack.Identity was developed to be implemented in ASP.NET Core. It support all .NET versions since 3.1.
About
.NET DevPack.Identity was developed by Eduardo Pires under the MIT license.
Owner
- Name: BigBuildBench
- Login: BigBuildBench
- Kind: organization
- Repositories: 1
- Profile: https://github.com/BigBuildBench
abbr. B3, benchmarking the repo-level understanding capability of your LLMs by reconstructing project build-file.
GitHub Events
Total
- Create event: 4
Last Year
- Create event: 4
Dependencies
- actions/checkout v3 composite
- actions/setup-dotnet v3 composite
- cycjimmy/semantic-release-action v2 composite
- actions/checkout v3 composite
- actions/setup-dotnet v3 composite