Skip to content

Commit ab8be26

Browse files
authored
Merge pull request #261 from ITfoxtec/development
Development
2 parents 70c8b9c + 6810d12 commit ab8be26

File tree

6 files changed

+69
-13
lines changed

6 files changed

+69
-13
lines changed

AGENTS.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Repository Guidelines
2+
3+
## Project Structure & Module Organization
4+
Solution `ITfoxtec.Identity.Saml2.sln` ties together three library projects stored in `src/` (core library plus ASP.NET MVC and ASP.NET Core MVC helpers). Sample and verification sites live in `test/` (e.g., `TestWebAppCore`, `TestIdPCore`, Key Vault demos) and mirror hosting models to reproduce IdP/RP conversations before publishing packages. NuGet artifacts are emitted only from the library folders; keep sample-specific assets there to avoid polluting the shipping assemblies.
5+
6+
## Build, Test, and Development Commands
7+
- `dotnet restore ITfoxtec.Identity.Saml2.sln` - fetches every target framework dependency.
8+
- `dotnet build ITfoxtec.Identity.Saml2.sln -c Release` - runs multi-targeted builds and produces signed binaries.
9+
- `dotnet pack src/ITfoxtec.Identity.Saml2/ITfoxtec.Identity.Saml2.csproj -c Release` - prepares the NuGet package used for public releases.
10+
- `dotnet run --project test/TestWebAppCore/TestWebAppCore.csproj` - exercises SP initiated, redirect, and post bindings locally.
11+
12+
## Coding Style & Naming Conventions
13+
Use 4-space indentation, braces on new lines, and `PascalCase` for public types/members. Locals stay `camelCase`, while persistent private fields use `_camelCase`. Keep namespaces explicit (`ITfoxtec.Identity.Saml2.*`) so bindings, cryptography helpers, and MVC extensions remain discoverable. Retain XML doc comments on public APIs; warnings `1591` and `1573` are suppressed only when documentation exists. Prefer guard clauses such as `ArgumentNullException(nameof(config))` and run `dotnet format` (or the equivalent IDE formatter) before submitting work.
14+
15+
## Testing Guidelines
16+
Automated coverage is minimal today, so rely on the runnable apps in `test/` for regression checks. Follow the existing `Test<Context><Host>` naming pattern for any new scenario. If you introduce formal test projects, wire them into the solution so `dotnet test ITfoxtec.Identity.Saml2.sln` succeeds. Capture manual test notes covering IdP metadata, signing certificates, Key Vault references, and RelayState expectations inside the relevant `test/*` README.
17+
18+
## Security & Configuration Tips
19+
Do not commit secrets or real certificates. Sample apps should load configuration via environment variables, `dotnet user-secrets`, or Azure Key Vault, matching the `TestWebAppCoreAzureKeyVault` example. When sharing traces, sanitize assertions, entity IDs, and thumbprints. Validate new bindings against trusted IdPs (Azure AD, AD FS, NemLog-in) before merging to avoid regressions for both SP and IdP consumers.

src/ITfoxtec.Identity.Saml2.Mvc/ITfoxtec.Identity.Saml2.Mvc.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ The company name ITfoxtec has changed to FoxIDs but the components will keep the
2828
<PackageTags>SAML SAML 2.0 SAML2.0 SAML2 SAML 2 SAML-P SAMLP SSO Identity Provider (IdP) and Relying Party (RP) Authentication Metadata OIOSAML OIOSAML 2 OIOSAML 3 NemLogin NemLog-in 2 NemLog-in 3 ASP.NET MVC</PackageTags>
2929
<NeutralLanguage>en-US</NeutralLanguage>
3030
<PackageIconUrl>https://www.foxids.com/favicon.ico</PackageIconUrl>
31-
<AssemblyVersion>4.16.2</AssemblyVersion>
32-
<FileVersion>4.16.2</FileVersion>
31+
<AssemblyVersion>4.17.0</AssemblyVersion>
32+
<FileVersion>4.17.0</FileVersion>
3333
<Copyright>Copyright © 2025</Copyright>
34-
<Version>4.16.2</Version>
34+
<Version>4.17.0</Version>
3535
<SignAssembly>true</SignAssembly>
3636
<AssemblyOriginatorKeyFile>ITfoxtec.SAML2.snk</AssemblyOriginatorKeyFile>
3737
<DelaySign>false</DelaySign>

src/ITfoxtec.Identity.Saml2.MvcCore/ITfoxtec.Identity.Saml2.MvcCore.csproj

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net9.0;net8.0;net7.0;net6.0;net48;net462</TargetFrameworks>
3+
<TargetFrameworks>net10.0;net9.0;net8.0;net7.0;net6.0;net48;net462</TargetFrameworks>
44
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
55
<IncludeSymbols>true</IncludeSymbols>
66
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
@@ -12,6 +12,7 @@
1212
<Title>ITfoxtec Identity SAML 2.0 MVC Core</Title>
1313
<Description>ASP.NET MVC Core is supported by the ITfoxtec Identity SAML2 MVC Core package which helps to integrate the ITfoxtec Identity SAML2 package and add support for SAML-P and SAML 2.0 tokens.
1414

15+
Support .NET 10.0
1516
Support .NET 9.0
1617
Support .NET 8.0
1718
Support .NET 7.0
@@ -32,10 +33,10 @@ The company name ITfoxtec has changed to FoxIDs but the components will keep the
3233
<PackageTags>SAML SAML 2.0 SAML2.0 SAML2 SAML 2 SAML-P SAMLP SSO Identity Provider (IdP) Relying Party (RP) Authentication Metadata OIOSAML OIOSAML 2 OIOSAML 3 NemLogin NemLog-in 2 NemLog-in 3 ASP.NET MVC Core</PackageTags>
3334
<NeutralLanguage>en-US</NeutralLanguage>
3435
<PackageIconUrl>https://www.foxids.com/favicon.ico</PackageIconUrl>
35-
<AssemblyVersion>4.16.2</AssemblyVersion>
36-
<FileVersion>4.16.2</FileVersion>
36+
<AssemblyVersion>4.17.0</AssemblyVersion>
37+
<FileVersion>4.17.0</FileVersion>
3738
<Copyright>Copyright © 2025</Copyright>
38-
<Version>4.16.2</Version>
39+
<Version>4.17.0</Version>
3940
<SignAssembly>true</SignAssembly>
4041
<AssemblyOriginatorKeyFile>ITfoxtec.SAML2.snk</AssemblyOriginatorKeyFile>
4142
<DelaySign>false</DelaySign>
@@ -50,6 +51,22 @@ The company name ITfoxtec has changed to FoxIDs but the components will keep the
5051
<ProjectReference Include="..\ITfoxtec.Identity.Saml2\ITfoxtec.Identity.Saml2.csproj" />
5152
</ItemGroup>
5253

54+
<ItemGroup Condition=" '$(TargetFramework)' == 'net10.0'">
55+
<FrameworkReference Include="Microsoft.AspNetCore.App" />
56+
</ItemGroup>
57+
<PropertyGroup Condition=" '$(TargetFramework)' == 'net10.0'">
58+
<DefineConstants>NET100;NET</DefineConstants>
59+
</PropertyGroup>
60+
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net10.0|AnyCPU'">
61+
<DebugSymbols>true</DebugSymbols>
62+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
63+
<NoWarn>$(NoWarn);1591;1573</NoWarn>
64+
</PropertyGroup>
65+
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net10.0|AnyCPU'">
66+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
67+
<NoWarn>$(NoWarn);1591;1573</NoWarn>
68+
</PropertyGroup>
69+
5370
<ItemGroup Condition=" '$(TargetFramework)' == 'net9.0'">
5471
<FrameworkReference Include="Microsoft.AspNetCore.App" />
5572
</ItemGroup>

src/ITfoxtec.Identity.Saml2/ITfoxtec.Identity.Saml2.csproj

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net9.0;net8.0;net7.0;net6.0;netstandard2.1;net48;net462</TargetFrameworks>
3+
<TargetFrameworks>net10.0;net9.0;net8.0;net7.0;net6.0;netstandard2.1;net48;net462</TargetFrameworks>
44
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
55
<IncludeSymbols>true</IncludeSymbols>
66
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
@@ -12,6 +12,7 @@
1212
<Title>ITfoxtec Identity SAML 2.0</Title>
1313
<Description>The ITfoxtec Identity Saml2 package adds SAML-P support for both Identity Provider (IdP) and Relying Party (RP) on top of the SAML 2.0 functionality implemented in .NET.
1414

15+
Support .NET 10.0
1516
Support .NET 9.0
1617
Support .NET 8.0
1718
Support .NET 7.0
@@ -33,17 +34,36 @@ The company name ITfoxtec has changed to FoxIDs but the components will keep the
3334
<PackageTags>SAML SAML 2.0 SAML2.0 SAML2 SAML 2 SAML-P SAMLP SSO Identity Provider (IdP) Relying Party (RP) Authentication Metadata OIOSAML OIOSAML 2 OIOSAML 3 NemLogin NemLog-in 2 NemLog-in 3</PackageTags>
3435
<NeutralLanguage>en-US</NeutralLanguage>
3536
<PackageIconUrl>https://www.foxids.com/favicon.ico</PackageIconUrl>
36-
<AssemblyVersion>4.16.2</AssemblyVersion>
37-
<FileVersion>4.16.2</FileVersion>
37+
<AssemblyVersion>4.17.0</AssemblyVersion>
38+
<FileVersion>4.17.0</FileVersion>
3839
<Copyright>Copyright © 2025</Copyright>
39-
<Version>4.16.2</Version>
40+
<Version>4.17.0</Version>
4041
<SignAssembly>true</SignAssembly>
4142
<AssemblyOriginatorKeyFile>ITfoxtec.SAML2.snk</AssemblyOriginatorKeyFile>
4243
<DelaySign>false</DelaySign>
4344
<PackageProjectUrl>https://itfoxtec.com/IdentitySaml2</PackageProjectUrl>
4445
<RepositoryUrl>https://github.com/ITfoxtec/ITfoxtec.Identity.Saml2</RepositoryUrl>
4546
</PropertyGroup>
4647

48+
<ItemGroup Condition=" '$(TargetFramework)' == 'net10.0'">
49+
<PackageReference Include="Microsoft.Extensions.Http" Version="10.0.0" />
50+
<PackageReference Include="Microsoft.IdentityModel.Tokens.Saml" Version="8.15.0" />
51+
<PackageReference Include="System.Security.Cryptography.Xml" Version="10.0.0" />
52+
<PackageReference Include="System.ServiceModel.Security" Version="6.0.0" />
53+
</ItemGroup>
54+
<PropertyGroup Condition=" '$(TargetFramework)' == 'net10.0'">
55+
<DefineConstants>NET100;NET</DefineConstants>
56+
</PropertyGroup>
57+
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net10.0|AnyCPU'">
58+
<DebugSymbols>true</DebugSymbols>
59+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
60+
<NoWarn>$(NoWarn);1591;1573</NoWarn>
61+
</PropertyGroup>
62+
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net10.0|AnyCPU'">
63+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
64+
<NoWarn>$(NoWarn);1591;1573</NoWarn>
65+
</PropertyGroup>
66+
4767
<ItemGroup Condition=" '$(TargetFramework)' == 'net9.0'">
4868
<PackageReference Include="Microsoft.Extensions.Http" Version="9.0.8" />
4969
<PackageReference Include="Microsoft.IdentityModel.Tokens.Saml" Version="8.14.0" />

test/TestIdPCore/TestIdPCore.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFramework>net9.0</TargetFramework>
3+
<TargetFramework>net10.0</TargetFramework>
44
<AssemblyName>TestIdPCore</AssemblyName>
55
<PackageId>TestIdPCore</PackageId>
66
<Version>9.0.0</Version>

test/TestWebAppCore/TestWebAppCore.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFramework>net9.0</TargetFramework>
3+
<TargetFramework>net10.0</TargetFramework>
44
<AssemblyName>TestWebAppCore</AssemblyName>
55
<PackageId>TestWebAppCore</PackageId>
66
<Version>9.0.0</Version>

0 commit comments

Comments
 (0)