我有一个 ASP.NET MVC 网站,它使用 ASP.NET WebAPI 进行身份验证。我使用 ThinkTecture IdentityModel 进行基本身份验证和会话令牌,这在本地和 Azure 网站中都可以正常工作。但是,我不得不迁移到 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));
}