在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
DotNetOpenAuth .NET Core 是原始 DotNetOpenAuth 庫的 .NET Core 版本,提供了強大的公共 API。這個庫幫助你在 .NET 應用程式中添加 OAuth2 和 OpenID 驗證。IronPDF 是一個用於在 .NET 中創建、閱讀和編輯 PDF 文件的庫。它對於直接從你的 .NET 應用程式生成報告和發票等文件非常有用。
你可以在各種類型的項目中使用 DotNetOpenAuth .NET Core 和 IronPDF,例如網頁和桌面應用程式,以利用共享代碼並實施新功能。它們對於尋求在其軟體中處理驗證和 PDF 文件管理的開發人員來說是必不可少的。
要在由微軟技術支持的 .NET 專案中使用 DotNetOpenAuth .NET Core,請遵循以下步驟:
DotNetOpenAuth.NetCore
及其他 NuGet 封裝。這將把 DotNetOpenAuth .NET Core 庫添加到您的專案中,提供整合身份驗證功能的支持。
這是一個簡單的範例,展示如何使用 DotNetOpenAuth .NET Core 在您的應用程式中設置 OAuth2 認證:
using DotNetOpenAuth.OAuth2;
// Initialize the OAuth2 client
var client = new WebServerClient(new AuthorizationServerDescription
{
TokenEndpoint = new Uri("https://your-auth-server.com/token"),
AuthorizationEndpoint = new Uri("https://your-auth-server.com/authorize")
}, "your-client-id", "your-client-secret");
// Start the authentication process
IAuthorizationState state = client.ProcessUserAuthorization();
if (state != null && state.IsAuthorized)
{
// Authorized successfully, now you can access protected resources
}
using DotNetOpenAuth.OAuth2;
// Initialize the OAuth2 client
var client = new WebServerClient(new AuthorizationServerDescription
{
TokenEndpoint = new Uri("https://your-auth-server.com/token"),
AuthorizationEndpoint = new Uri("https://your-auth-server.com/authorize")
}, "your-client-id", "your-client-secret");
// Start the authentication process
IAuthorizationState state = client.ProcessUserAuthorization();
if (state != null && state.IsAuthorized)
{
// Authorized successfully, now you can access protected resources
}
Imports DotNetOpenAuth.OAuth2
' Initialize the OAuth2 client
Private client = New WebServerClient(New AuthorizationServerDescription With {
.TokenEndpoint = New Uri("https://your-auth-server.com/token"),
.AuthorizationEndpoint = New Uri("https://your-auth-server.com/authorize")
}, "your-client-id", "your-client-secret")
' Start the authentication process
Private state As IAuthorizationState = client.ProcessUserAuthorization()
If state IsNot Nothing AndAlso state.IsAuthorized Then
' Authorized successfully, now you can access protected resources
End If
以下代碼片段使用 DotNetOpenAuth .NET Core 設置 OAuth2 客戶端,連接到授權伺服器並處理用戶授權。
要使用DotNetOpenAuth .NET Core整合OpenID Connect,您可以遵循這種基本方法:
using DotNetOpenAuth.OAuth2;
// Configure the OpenID Connect client
var openIdClient = new WebServerClient(new AuthorizationServerDescription
{
TokenEndpoint = new Uri("https://your-openid-provider.com/token"),
AuthorizationEndpoint = new Uri("https://your-openid-provider.com/authorize")
}, "your-client-id");
// Redirect user for authentication
Uri authUri = openIdClient.GetAuthorizationRequestUri("openid email profile");
Response.Redirect(authUri.AbsoluteUri);
using DotNetOpenAuth.OAuth2;
// Configure the OpenID Connect client
var openIdClient = new WebServerClient(new AuthorizationServerDescription
{
TokenEndpoint = new Uri("https://your-openid-provider.com/token"),
AuthorizationEndpoint = new Uri("https://your-openid-provider.com/authorize")
}, "your-client-id");
// Redirect user for authentication
Uri authUri = openIdClient.GetAuthorizationRequestUri("openid email profile");
Response.Redirect(authUri.AbsoluteUri);
Imports DotNetOpenAuth.OAuth2
' Configure the OpenID Connect client
Private openIdClient = New WebServerClient(New AuthorizationServerDescription With {
.TokenEndpoint = New Uri("https://your-openid-provider.com/token"),
.AuthorizationEndpoint = New Uri("https://your-openid-provider.com/authorize")
}, "your-client-id")
' Redirect user for authentication
Private authUri As Uri = openIdClient.GetAuthorizationRequestUri("openid email profile")
Response.Redirect(authUri.AbsoluteUri)
此代碼配置一個OpenID Connect客戶端,並將使用者重定向至OpenID提供者的身份驗證頁面。
以下是使用DotNetOpenAuth .NET Core 處理訪問權杖的方法:
// After user is authenticated, process the authorization response
IAuthorizationState authState = openIdClient.ProcessUserAuthorization();
if (authState != null && authState.IsAuthorized)
{
// Access token is available, and you can use it to make authenticated requests
string accessToken = authState.AccessToken;
}
// After user is authenticated, process the authorization response
IAuthorizationState authState = openIdClient.ProcessUserAuthorization();
if (authState != null && authState.IsAuthorized)
{
// Access token is available, and you can use it to make authenticated requests
string accessToken = authState.AccessToken;
}
' After user is authenticated, process the authorization response
Dim authState As IAuthorizationState = openIdClient.ProcessUserAuthorization()
If authState IsNot Nothing AndAlso authState.IsAuthorized Then
' Access token is available, and you can use it to make authenticated requests
Dim accessToken As String = authState.AccessToken
End If
此程式碼片段處理使用者授權回應來檢索並使用訪問令牌。
當令牌過期時,使用以下程式碼進行刷新:
// Check if the access token is expired and refresh it
if (authState.AccessTokenExpirationUtc <= DateTime.UtcNow)
{
if (openIdClient.RefreshAuthorization(authState))
{
// Token refreshed successfully
}
}
// Check if the access token is expired and refresh it
if (authState.AccessTokenExpirationUtc <= DateTime.UtcNow)
{
if (openIdClient.RefreshAuthorization(authState))
{
// Token refreshed successfully
}
}
' Check if the access token is expired and refresh it
If authState.AccessTokenExpirationUtc <= DateTime.UtcNow Then
If openIdClient.RefreshAuthorization(authState) Then
' Token refreshed successfully
End If
End If
此代碼檢查當前令牌是否已過期並嘗試刷新它。
如果您需要撤銷令牌,請按照以下方式實施:
// Revoke the access token
bool success = openIdClient.RevokeAuthorization(authState);
if (success)
{
// Token revoked successfully
}
// Revoke the access token
bool success = openIdClient.RevokeAuthorization(authState);
if (success)
{
// Token revoked successfully
}
' Revoke the access token
Dim success As Boolean = openIdClient.RevokeAuthorization(authState)
If success Then
' Token revoked successfully
End If
此程式碼片段撤銷了授權,有效地使存取權杖無效。
若要針對特定需求自訂 Token 請求,例如添加額外參數:
// Customize the token request
var additionalParams = new Dictionary<string, string>
{
{"custom_parameter", "value"}
};
IAuthorizationState customizedState = openIdClient.ProcessUserAuthorization(additionalParams);
if (customizedState != null && customizedState.IsAuthorized)
{
// Token request customized and processed successfully
}
// Customize the token request
var additionalParams = new Dictionary<string, string>
{
{"custom_parameter", "value"}
};
IAuthorizationState customizedState = openIdClient.ProcessUserAuthorization(additionalParams);
if (customizedState != null && customizedState.IsAuthorized)
{
// Token request customized and processed successfully
}
' Customize the token request
Dim additionalParams = New Dictionary(Of String, String) From {
{"custom_parameter", "value"}
}
Dim customizedState As IAuthorizationState = openIdClient.ProcessUserAuthorization(additionalParams)
If customizedState IsNot Nothing AndAlso customizedState.IsAuthorized Then
' Token request customized and processed successfully
End If
此程式碼將自訂參數添加到令牌請求中,這對於處理授權伺服器的特定需求可能很有用。
IronPDF 是一個全面的圖書館,允許開發人員在 .NET 環境中創建、閱讀和操作 PDF 文件。它對於從 HTML 或直接從 URL 生成 PDF 特別有用,這對於生成報告、創建發票或僅以靜態格式存儲網頁都非常有用。當與 DotNetOpenAuth .NET Core 集成時,它確保這些功能是安全的,並且僅可供經過身份驗證的用戶訪問。
一個將 IronPDF 與 DotNetOpenAuth .NET Core 合併的實際應用案例是在一個網絡應用程序中,經過認證的用戶需要生成和下載個性化報告。例如,想像一個場景,用戶登錄到您的應用程序並訪問他們的財務報告作為 PDF 文件。DotNetOpenAuth 確保用戶被正確認證和授權以訪問其文檔,而 IronPDF 則處理這些個性化 PDF 的創建和交付。
讓我們來看看一個完整的程式碼範例,這範例示範了如何實現這個功能。我們將在 .NET Core 中建立一個簡單的 Web API,認證使用者並生成一份使用 IronPDF 的 PDF 報告:
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
[Route("api/[controller]")]
[ApiController]
public class ReportController : ControllerBase
{
[Authorize]
[HttpGet("download-pdf")]
public IActionResult DownloadPdfReport()
{
// Authentication is handled by DotNetOpenAuth .NET Core
var currentUser = HttpContext.User.Identity.Name;
// Generate PDF content using IronPDF
var Renderer = new ChromePdfRenderer();
var PDF = Renderer.RenderHtmlAsPdf($"<h1>Report for {currentUser}</h1><p>This is your personalized financial report.</p>");
// Set file name and content type for the PDF
var outputFileName = $"Report-{currentUser}.pdf";
Response.Headers.Add("Content-Disposition", $"attachment; filename={outputFileName}");
Response.ContentType = "application/pdf";
// Return the generated PDF file
return File(PDF.Stream.ToArray(), "application/pdf");
}
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
[Route("api/[controller]")]
[ApiController]
public class ReportController : ControllerBase
{
[Authorize]
[HttpGet("download-pdf")]
public IActionResult DownloadPdfReport()
{
// Authentication is handled by DotNetOpenAuth .NET Core
var currentUser = HttpContext.User.Identity.Name;
// Generate PDF content using IronPDF
var Renderer = new ChromePdfRenderer();
var PDF = Renderer.RenderHtmlAsPdf($"<h1>Report for {currentUser}</h1><p>This is your personalized financial report.</p>");
// Set file name and content type for the PDF
var outputFileName = $"Report-{currentUser}.pdf";
Response.Headers.Add("Content-Disposition", $"attachment; filename={outputFileName}");
Response.ContentType = "application/pdf";
// Return the generated PDF file
return File(PDF.Stream.ToArray(), "application/pdf");
}
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Authorization
<Route("api/[controller]")>
<ApiController>
Public Class ReportController
Inherits ControllerBase
<Authorize>
<HttpGet("download-pdf")>
Public Function DownloadPdfReport() As IActionResult
' Authentication is handled by DotNetOpenAuth .NET Core
Dim currentUser = HttpContext.User.Identity.Name
' Generate PDF content using IronPDF
Dim Renderer = New ChromePdfRenderer()
Dim PDF = Renderer.RenderHtmlAsPdf($"<h1>Report for {currentUser}</h1><p>This is your personalized financial report.</p>")
' Set file name and content type for the PDF
Dim outputFileName = $"Report-{currentUser}.pdf"
Response.Headers.Add("Content-Disposition", $"attachment; filename={outputFileName}")
Response.ContentType = "application/pdf"
' Return the generated PDF file
Return File(PDF.Stream.ToArray(), "application/pdf")
End Function
End Class
在此示例中,我們使用 [授權]
屬性以確保只有已驗證的用戶才能訪問PDF生成端點。IronPDF中的ChromePdfRenderer
類用於從HTML內容創建PDF,在這種情況下,它會動態地個性化用戶的姓名。
將DotNetOpenAuth .NET Core與IronPDF整合在一起,可以為增強您的.NET應用程式的安全性和功能性提供一個強大的解決方案。透過利用這些技術,您可以有效地保護敏感數據,並通過動態PDF生成提供個性化的用戶體驗。
IronPDF不僅具有多功能性,還對開發人員友好,提供一種簡單的方法來創建和管理.NET應用程式內的PDF文件。如果您考慮將IronPDF納入您的專案,您會很高興地知道它提供了免費試用和授權選項。