У меня есть веб-сайт 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));
}
system.web\authentication
,system.web\authorization
,system.webserver\modules
,system.identitymodel
иsystem.identitymodel.services
- person astaykov   schedule 27.04.2013