Skip to main content

Tutorial: Integrate Tide in a Csharp WebForm Application

Run a WebForms app with a companion ASP.NET Core auth sub‑application that handles TideCloak logins. WebForms reads cookies set by the Core app.


1) Create projects

  • WebFormsApp (UI)
  • CoreApp (Razor Pages) - performs OIDC login/logout and writes cookies (UserName, Subject).

2) WebForms default page

WebFormsApp/Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebForms._Default" Async="true" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><title>Welcome</title></head>
<body>
<form id="form1" runat="server">
<div>
<a href="/coreapp/login">Login to Core App</a><br/>
<a href="/coreapp/logout">Logout from Core App</a><br/>
<asp:Panel ID="UserInfoPanel" runat="server" Visible="false">
<asp:Literal ID="UserInfo" runat="server" />
</asp:Panel>
</div>
</form>
</body>
</html>

WebFormsApp/Default.aspx.cs (reads cookies)

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
var u = Request.Cookies["UserName"]?.Value;
var s = Request.Cookies["Subject"]?.Value;
if (!string.IsNullOrEmpty(u) && !string.IsNullOrEmpty(s))
{
UserInfo.Text = $"Welcome, {u}! Your Session ID is {s}.";
UserInfoPanel.Visible = true;
}
}
}

3) CoreApp authentication

Install OIDC/Cookies packages and configure Program.cs as in the ASP.NET Core tutorial (authority, client, scopes, etc.).

Login/Logout/Callback

Use the Pages you provided (Login.cshtml(.cs), Logout.cshtml(.cs), Callback.cshtml(.cs)) and in Callback set cookies then redirect back to WebForms:

Response.Cookies.Append("UserName", userName, new CookieOptions { Expires = DateTimeOffset.Now.AddMinutes(30) });
Response.Cookies.Append("Subject", subject, new CookieOptions { Expires = DateTimeOffset.Now.AddMinutes(30) });
return Redirect("http://localhost:8000/Default.aspx");

4) Configure IIS Express (sub‑application)

Edit applicationhost.config so CoreApp is a sub‑app under WebFormsApp:

<application path="/coreapp" applicationPool="TideAuthAppPool">
<virtualDirectory path="/" physicalPath="C:\Path\CoreApp\bin\Release\net8.0\publish" />
</application>

Publish CoreApp (dotnet publish -c Release) to the folder referenced above.

5) Run

Start WebFormsApp (IIS Express). Visit http://localhost:8000, click Login to Core App, authenticate, and verify the user details show from cookies.