저는 ASP.NET WebAPI를 사용하여 인증하는 ASP.NET MVC 웹 사이트를 운영하고 있습니다. 필자는 기본 인증 및 세션 토큰에 대해 ThinkTecture IdentityModel을 사용했습니다.이 토큰은 로컬 및 Azure 웹 사이트에서 올바르게 작동합니다. 그러나 Azure Cloud 서비스로 마이그레이션해야만 토큰으로 인증 할 수 없으며 항상 401 오류가 발생하지만 사용자 이름과 비밀번호 만 있으면 제대로 작동합니다.토큰으로 인증 할 수 없습니다.
내가 추측 할 수있는 유일한 차이점은 지금 IIS를 다뤄야한다는 것입니다. 토큰으로 인증 할 수 있도록 수정해야합니까?
업데이트 : 난 그냥 WebAPIConfig에 다음 코드를 사용하여 인증을 위해 어떤의 Web.config 구성을 사용하지 않는
.
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