The article Chris provided as a commentが溶液であった。
必要なのは、特定の要求に対してフォーム認証をバイパスし、代わりに基本HTTP認証を使用することです。これは、Outlook(およびWebブラウザなどの潜在的に他のエージェント)によってサポートされています。
これは、MADAM Http Moduleを使用することによって実現されます。
ステップ:
1>基本的な理解を得るために記事をお読みください。
2> MADAM NuGetパッケージをインストールします。PM>インストール・パッケージのマダム
3>独自のIUserSecurityAuthorityを実装します。
例えば
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>は、次の行を追加します。あなたのウェブ設定に:
例:
<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>
注1:
<discriminator inputExpression="Request.Url" pattern="Calendar\.aspx" type="Madam.RegexDiscriminator"/>
...バイパスフォーム認証および基本的なHTTP認証を使用し、これは正規表現を使って行われなければならない要求を識別するために使用され、あなたが追加することができます複数の弁別器。
注2:
<userSecurityAuthority realm="MADAM" provider="YourAppAssembly.MadamUserSecurityAuthority, YourAppAssembly"/>
は....あなたがカスタム認証プロバイダを設定するところである(つまり、あなたのDBに対する資格情報をチェックしています)。
おそらくこれを見てくださいhttp://msdn.microsoft.com/en-us/library/aa479391.aspx –
ありがとう@ChrisMoutray。この記事で説明している内容に基づいて回答を作成しました。 –