ASP.NET WebAPI を使用して認証する ASP.NET MVC Web サイトがあります。基本認証とセッション トークンに ThinkTecture IdentityModel を使用しています。これはローカルでも Azure Web サイトでも問題なく動作します。ただし、Azure クラウド サービスに移行する必要があり、現在はトークンで認証できず、常に 401 エラーを受け取りますが、ユーザー名とパスワードだけで問題なく動作します。
私が推測できる唯一の違いは、IIS に対処しなければならないことです。トークンによる認証を許可するために必要な変更はありますか?
更新しました:
認証に Web.Config 構成を使用していません。WebAPIConfig で次のコードを使用しているだけです。
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
var authConfig = new AuthenticationConfiguration
{
RequireSsl = true,
EnableSessionToken = true,
SendWwwAuthenticateResponseHeaders = true,
SessionToken = new SessionTokenConfiguration()
{
DefaultTokenLifetime = System.TimeSpan.FromDays(1.0)
}
};
// setup authentication against membership
authConfig.AddBasicAuthentication(
(userName, password) => WebSecurity.Login(userName, password, true)
);
config.MessageHandlers.Add(new AuthenticationHandler(authConfig));
}