The article Chris provided as a comment war die Lösung.
Erforderlich ist, die Formularauthentifizierung für bestimmte Anforderungen zu umgehen und stattdessen die einfache HTTP-Authentifizierung zu verwenden. Dies wird dann von Outlook (und möglicherweise anderen Agenten wie Webbrowsern) unterstützt.
Dies wird mit der MADAM Http Module erreicht.
Schritte:
1> Lesen Sie den Artikel ein grundlegendes Verständnis zu gewinnen.
2> Installieren Sie das MADAM NuGet Paket: PM> Install-Paket Frau
3> Implementieren Sie Ihre eigene IUserSecurityAuthority:
zB
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> Fügen Sie den folgenden zu Ihrer Webkonfiguration:
zB:
<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>
Anmerkung 1:
<discriminator inputExpression="Request.Url" pattern="Calendar\.aspx" type="Madam.RegexDiscriminator"/>
... wird verwendet, um festzustellen, welche Bypass-Formularauthentifizierung und verwenden grundlegende HTTP-Authentifizierung anfordert, sollte dies mit Regex getan, und Sie können hinzufügen mehrere Diskriminatoren.
Anmerkung 2:
<userSecurityAuthority realm="MADAM" provider="YourAppAssembly.MadamUserSecurityAuthority, YourAppAssembly"/>
.... ist, wo Sie Ihre benutzerdefinierten Authentifizierungsanbieter konfigurieren (das heißt, wenn Sie die Anmeldeinformationen gegen Ihre DB überprüfen).
Vielleicht in diese http://msdn.microsoft.com/en-us/library/aa479391.aspx –
Dank @ChrisMoutray. Ich habe eine Antwort basierend auf dem, was der Artikel beschreibt, komponiert. –