我有一個使用ASP.NET WebAPI進行身份驗證的ASP.NET MVC網站。我已經使用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));
}
閱讀本文http://weblogs.thinktecture.com/cweyer/azure/ – 2013-04-27 17:38:39
爲了提供幫助,請提供web.confg的以下部分:'system.web \ authentication','system.web \ authorization ','system.webserver \ modules','system.identitymodel'和'system.identitymodel.services' – astaykov 2013-04-27 19:37:52
@DaveA我沒有使用Identity Server。我有一個需要身份驗證的API,正在使用Thinktecture.IdentityModel和WebMatrix.WebData.WebSecurity來驗證每個請求。 – jaimetotal 2013-04-27 20:24:46