0

我有一個使用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)); 
     } 
 
+0

閱讀本文http://weblogs.thinktecture.com/cweyer/azure/ – 2013-04-27 17:38:39

+0

爲了提供幫助,請提供web.confg的以下部分:'system.web \ authentication','system.web \ authorization ','system.webserver \ modules','system.identitymodel'和'system.identitymodel.services' – astaykov 2013-04-27 19:37:52

+0

@DaveA我沒有使用Identity Server。我有一個需要身份驗證的API,正在使用Thinktecture.IdentityModel和WebMatrix.WebData.WebSecurity來驗證每個請求。 – jaimetotal 2013-04-27 20:24:46

回答

1

我會在SessionTokenConfiguration上設置一個固定的簽名密鑰。你絕對需要這個。

+0

謝謝,就像你說的。 – jaimetotal 2013-05-01 23:36:57

相關問題