Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
DotNetOpenAuth .NET Core es una versión de la biblioteca original DotNetOpenAuth adaptada para .NET Core, que proporciona una API pública robusta. Esta biblioteca le ayuda a añadir autenticación con OAuth2 y OpenID a sus aplicaciones .NET. IronPDF es una biblioteca para crear, leer y editar archivos PDF en .NET. Es útil para generar documentos como informes y facturas directamente desde sus aplicaciones .NET.
Puede utilizar DotNetOpenAuth .NET Core e IronPDF en varios tipos de proyectos, como aplicaciones web y de escritorio, para aprovechar el código compartido e implementar nuevas funciones. Son esenciales para los desarrolladores que deseen gestionar la autenticación y la gestión de documentos PDF en su software.
Para empezar a utilizar DotNetOpenAuth .NET Core en sus proyectos .NET, compatibles con las tecnologías de Microsoft, siga estos pasos:
Abra su proyecto en Visual Studio.
Vaya al Explorador de soluciones.
Haga clic con el botón derecho del ratón en el nombre de su proyecto.
Seleccione Gestionar paquetes NuGet
.
En el gestor de paquetes NuGet, busque DotNetOpenAuth.NetCore
y otros paquetes NuGet.
Haz clic en Install
para añadirlo a tu proyecto.
Esto añadirá la biblioteca DotNetOpenAuth .NET Core a su proyecto, proporcionando soporte para la integración de funciones de autenticación.
He aquí un sencillo ejemplo que muestra cómo configurar la autenticación OAuth2 en su aplicación utilizando DotNetOpenAuth .NET Core:
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
Este fragmento de código configura un cliente OAuth2 utilizando DotNetOpenAuth .NET Core, se conecta a un servidor de autorización y procesa la autorización del usuario.
Para integrar OpenID Connect mediante DotNetOpenAuth .NET Core, puede seguir este planteamiento básico:
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)
Este código configura un cliente OpenID Connect y redirige al usuario a la página de autenticación del proveedor OpenID.
A continuación se explica cómo gestionar los tokens de acceso con 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
Este fragmento procesa la respuesta de autorización del usuario para recuperar y utilizar el token de acceso.
Para actualizar los tokens cuando caducan, utilice el siguiente código:
// 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
Este código comprueba si el token actual ha caducado e intenta actualizarlo.
Si necesita revocar tokens, impleméntelo como se muestra a continuación:
// 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
Este fragmento revoca la autorización, invalidando efectivamente el token de acceso.
Para personalizar las solicitudes de token para necesidades específicas, como añadir parámetros adicionales:
// 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
Este código añade parámetros personalizados a la solicitud de token, que pueden ser útiles para tratar requisitos específicos de un servidor de autorización.
IronPDF es una completa biblioteca que permite a los desarrolladores crear, leer y manipular archivos PDF en entornos .NET. Resulta especialmente útil para generar PDF a partir de HTML o directamente de URL, lo que puede ser estupendo para elaborar informes, generar facturas o simplemente almacenar páginas web en un formato estático. Cuando se integra con DotNetOpenAuth .NET Core, garantiza que estas funciones sean seguras y accesibles únicamente para usuarios autenticados.
Un caso de uso práctico para fusionar IronPDF con DotNetOpenAuth .NET Core es en una aplicación web donde los usuarios autenticados necesitan generar y descargar informes personalizados. Por ejemplo, imagine una situación en la que los usuarios inician sesión en su aplicación y acceden a sus informes financieros en formato PDF. DotNetOpenAuth garantiza que los usuarios estén debidamente autenticados y autorizados para acceder a sus documentos, mientras que IronPDF se encarga de la creación y entrega de estos PDF personalizados.
Veamos un ejemplo de código completo que demuestra cómo implementar esto. Crearemos una API web sencilla en .NET Core que autentique a un usuario y luego genere un informe PDF utilizando IronPDF:
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
En este ejemplo, estamos utilizando el [Autorizar]para garantizar que sólo los usuarios autenticados puedan acceder al punto final de generación de PDF. La clase
ChromePdfRenderer` de IronPDF se utiliza para crear un PDF a partir de contenido HTML, que en este caso, se personaliza dinámicamente con el nombre del usuario.
La integración de DotNetOpenAuth .NET Core con IronPDF ofrece una potente solución para mejorar la seguridad y la funcionalidad de sus aplicaciones .NET. Al aprovechar estas tecnologías, puede proteger eficazmente los datos confidenciales y ofrecer una experiencia de usuario personalizada mediante la generación dinámica de PDF.
IronPDF no sólo es versátil, sino también fácil de usar para los desarrolladores, ya que ofrece un enfoque sencillo para crear y gestionar archivos PDF en aplicaciones .NET. Si está considerando incorporar IronPDF a su proyecto, se recomienda explorarSitio web oficial de IronPDF para una prueba gratuita y opciones de licencia.
9 productos API .NET para sus documentos de oficina