Не удается пройти аутентификацию с помощью токена

У меня есть веб-сайт 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));
        }


person Jaime Mendes    schedule 27.04.2013    source источник
comment
прочитайте это weblogs.thinktecture.com/cweyer/azure   -  person Dave Alperovich    schedule 27.04.2013
comment
Чтобы помочь, предоставьте следующие разделы вашего web.confg: system.web\authentication, system.web\authorization, system.webserver\modules, system.identitymodel и system.identitymodel.services   -  person astaykov    schedule 27.04.2013
comment
@DaveA Я не использую Identity Server. У меня есть API, который требует аутентификации и использует Thinktecture.IdentityModel и WebMatrix.WebData.WebSecurity для проверки каждого запроса.   -  person Jaime Mendes    schedule 28.04.2013
comment
@astaykov У меня нет никаких настроек, связанных с этими элементами. Я требую?   -  person Jaime Mendes    schedule 28.04.2013
comment
Вы используете один экземпляр или несколько?   -  person leastprivilege    schedule 28.04.2013
comment
@leastprivacy Я использовал 2 экземпляра, но просто для проверки я переключил его только на один, и у меня все еще есть та же проблема.   -  person Jaime Mendes    schedule 28.04.2013


Ответы (1)


Я бы установил фиксированный ключ подписи в SessionTokenConfiguration. Вам это обязательно нужно.

person leastprivilege    schedule 29.04.2013
comment
Спасибо, как вы и сказали. - person Jaime Mendes; 02.05.2013