office insertar ics google evento crear archivo c# asp.net outlook icalendar dday

insertar - office 365 api c#



Cómo agregar autenticación a ASP.NET alojado ICS iCalendar para Outlook (1)

El artículo que Chris proporcionó como comentario fue la solución.

Lo que se requiere es eludir la autenticación de formularios para ciertas solicitudes y, en su lugar, usar la autenticación básica HTTP. Esto es luego compatible con Outlook (y potencialmente con otros agentes, como los navegadores web).

Esto se logra mediante el uso del módulo MADAM Http .

Pasos:

1> Lea el artículo para obtener una comprensión básica.

2> Instalar el paquete MADAM NuGet: PM> Install-Package señora

3> Implemente su propia IUserSecurityAuthority :

p.ej

public class MadamUserSecurityAuthority : IUserSecurityAuthority { public MadamUserSecurityAuthority() { } //This constructor is required public MadamUserSecurityAuthority(IDictionary options) { } public object Authenticate(string userName, object password, PasswordFormat format, IDictionary options, string authenticationType) { if (_yourAuthenticationService.isValid(userName, password.ToString())) return true; //Returning null means the authentication failed return null; } public string RealmName { get { return "MADAM"; } } }

4> Agregue lo siguiente a su configuración web:

p.ej:

<sectionGroup name="madam"> <section name="userSecurityAuthority" type="System.Configuration.SingleTagSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <section name="formsAuthenticationDisposition" type="Madam.FormsAuthenticationDispositionSectionHandler, Madam"/> </sectionGroup> <madam> <formsAuthenticationDisposition> <discriminators all="true"> <discriminator inputExpression="Request.Url" pattern="Calendar/.aspx" type="Madam.RegexDiscriminator"/> </discriminators> </formsAuthenticationDisposition> <userSecurityAuthority realm="MADAM" provider="YourAppAssembly.MadamUserSecurityAuthority, YourAppAssembly"/> </madam> <httpModules> <add name="FormsAuthenticationDisposition" type="Madam.FormsAuthenticationDispositionModule, Madam"/> <add name="AuthenticationModule" type="Madam.BasicAuthenticationModule, Madam"/> </httpModules>

Nota 1:

<discriminator inputExpression="Request.Url" pattern="Calendar/.aspx" type="Madam.RegexDiscriminator"/>

... se usa para identificar qué solicitudes deben pasar por alto la autenticación de formularios y usar autenticación HTTP básica, esto se hace con Regex, y puede agregar múltiples discriminadores.

Nota 2:

<userSecurityAuthority realm="MADAM" provider="YourAppAssembly.MadamUserSecurityAuthority, YourAppAssembly"/>

.... es donde configura su proveedor de autenticación personalizado (es decir, donde verifica las credenciales contra su base de datos).

Tengo una aplicación ASP.NET que crea dinámicamente un calendario ICS ( usando la biblioteca DDay.iCal ) al cual me puedo suscribir desde dentro de outlook. Todo está funcionando bien, pero necesito poder asegurar el calendario para que solo los usuarios autenticados puedan acceder a él. es decir, cuando agrega la URL al calendario en Outlook, necesita solicitar un nombre de usuario y contraseña.

Recuerde que The Milk parece haber implementado lo que necesito , pero parece que no puedo encontrar ninguna información sobre cómo lograrlo yo mismo.