У меня есть веб-сайт ASP.NET MVC, который использует ASP.NET WebAPI для аутентификации. Я использую ThinkTecture IdentityModel для базовой проверки подлинности и токена сеанса, который отлично работает локально и на сайтах Azure. Тем не менее, мне пришлось перейти на службы Azure Cloud, и теперь я не могу выполнить аутентификацию с помощью токена, всегда получая ошибку 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));
}
читайте это http://weblogs.thinktecture.com/cweyer/azure/ –
Чтобы помочь, пожалуйста, предоставьте следующие разделы вашего web.confg: 'system.web \ authentication',' system.web \ authorization ',' system.webserver \ modules', 'system.identitymodel' и' system.identitymodel.services' – astaykov
@DaveA Я не использую Identity Server. У меня есть API, который требует аутентификации и использует Thinktecture.IdentityModel и WebMatrix.WebData.WebSecurity для проверки каждого запроса. – jaimetotal