21 Commits

Author SHA1 Message Date
b08d88ee0f Configure NLog only in non-development environments
Refactored logging setup to clear providers and use NLog exclusively when not in development. This ensures development uses default logging, while production and other environments leverage NLog.
2026-03-18 11:14:26 +01:00
58f228dc6f Add NLog file logging configuration and error handling
Integrate NLog for structured file-based logging by adding configuration to appsettings.json and initializing NLog in Program.cs. Wrap application startup in a try-catch block to log unhandled exceptions. No changes to core application logic.
2026-03-18 11:12:16 +01:00
a68cb68c5c Add NLog and NLog.Web.AspNetCore dependencies
Included NLog (6.1.1) and NLog.Web.AspNetCore (6.1.2) NuGet packages
to enable advanced logging and ASP.NET Core integration.
2026-03-18 11:12:00 +01:00
f78b8dfd9e Bump version to 1.0.1-beta in project file
Updated FakeNTLMServer.csproj to increment the Version, AssemblyVersion, FileVersion, and InformationalVersion properties from 1.0.0-beta to 1.0.1-beta. This reflects a new pre-release version of the project.
2026-03-18 09:45:00 +01:00
eac1ab3929 Revert "Enable Windows Authentication in web.config"
This reverts commit 81c6604295.
2026-03-18 09:41:56 +01:00
665b44ad82 Revert "Enable anonymous authentication alongside Windows auth"
This reverts commit 32ff0a4888.
2026-03-18 09:41:35 +01:00
32ff0a4888 Enable anonymous authentication alongside Windows auth
Updated launchSettings.json to set anonymousAuthentication to true. Modified web.config to add <anonymousAuthentication enabled="true" /> under <authentication>, allowing both anonymous and Windows authentication. Reformatted web.config for improved readability.
2026-03-18 09:41:17 +01:00
81c6604295 Enable Windows Authentication in web.config
Added <security> section to web.config to enable Windows Authentication with NTLM and Negotiate providers under <system.webServer>. This allows the application to authenticate users using their Windows credentials.
2026-03-18 09:41:08 +01:00
893b44565c Enable Swagger via config and add project version metadata
Added versioning fields to FakeNTLMServer.csproj for assembly and informational versioning. Introduced "EnableSwagger" setting in appsettings.json to allow Swagger UI outside development environments. Reformatted authentication registration in Program.cs for clarity.
2026-03-16 15:17:57 +01:00
bcf38ee384 Refactor AuthController 'me' endpoint and remove auth
- Changed [HttpGet("me")] to [HttpGet(nameof(Me))] for route safety.
- Renamed method from GetMe to Me for consistency.
- Removed [Authorize] attribute to allow unauthenticated access.
2026-03-16 10:06:31 +01:00
3cecc0695f Add web.config for IIS hosting and development setup
Configured ASP.NET Core for IIS with AspNetCoreModuleV2, in-process hosting, and set environment to Development.
2026-03-16 09:44:53 +01:00
62dd45dd08 Restrict Kestrel server to HTTP/1 protocol in config
Added "Kestrel" section to appsettings.json to set endpoint default protocol to HTTP/1, preventing use of HTTP/2 or other protocols.
2026-03-16 09:44:41 +01:00
cfc74276ae Update AuthController routes; add Test endpoint
Refactored route attributes for Login and Status actions to use nameof() for improved maintainability. Added a new Test GET endpoint that returns a simple OK response.
2026-03-13 13:02:01 +01:00
7926d3d93f Enhance Swagger UI with Negotiate auth and XML docs
- Add custom OpenAPI doc with title, version, and description
- Define "Negotiate" security scheme for NTLM/Kerberos auth
- Require Negotiate authentication for all endpoints in Swagger
- Include XML comments in Swagger UI if available
- Configure Swagger UI to send credentials (withCredentials: true) for authenticated endpoint testing
2026-03-13 10:37:16 +01:00
5b37dbf854 Add POST /auth/login for Windows credential auth
Introduced a new endpoint to AuthController that allows authentication using Windows username, password, and optional domain via the Win32 LogonUser API. This enables credential validation without NTLM/Negotiate middleware or IIS. The endpoint parses both "DOMAIN\user" and "user@domain" formats and returns user info and claims on success, or Unauthorized on failure. Added necessary using directives for implementation.
2026-03-13 10:36:54 +01:00
ee9f4abc95 Add NtlmHelper for NTLM credential validation via LogonUser
Introduced the NtlmHelper static class in the FakeNTLMServer.Common namespace. This class provides a ValidateCredentials method that uses P/Invoke to call the Windows LogonUser API, allowing validation of NTLM credentials and returning a SafeAccessTokenHandle on success. Constants for logon type and provider are included, and token validity is checked.
2026-03-13 10:35:59 +01:00
d8c87f25d8 Add Login model with username, password, and domain fields
Introduced a Login class in the FakeNTLMServer.Model namespace to represent user credentials. The model includes required Username and Password properties, supporting various username formats, and an optional Domain property that defaults to the local machine if not specified.
2026-03-13 10:31:12 +01:00
8a8006874d Refactor AuthController and add NTLM login endpoint
Refactored AuthController to improve attribute usage and code clarity. Added three endpoints: /auth/me (user info), /auth/login (NTLM/Negotiate authentication with user info or 401), and /auth/status (authenticated user status). Responses are now more structured and informative. Applied [Authorize] only to relevant endpoints. Improved code organization and documentation.
2026-03-13 10:02:19 +01:00
8505259714 Add AuthController with /auth/me user info endpoint
Introduced AuthController secured with [Authorize] attribute.
Provides a GET /auth/me endpoint that returns the authenticated
user's identity details and claims.
2026-03-03 09:17:36 +01:00
9033e67b82 Initial ASP.NET Core Web API with NTLM auth and Swagger
Set up FakeNTLMServer project targeting .NET 8.0 with Windows Authentication (Negotiate) and Swagger/OpenAPI support. Added project and solution files, configured authentication and authorization in Program.cs, and included launch settings and logging configuration for development and production environments.
2026-03-03 09:17:25 +01:00
7874306b8d Initial commit 2026-03-03 09:14:49 +01:00