0

ASP.NET WebAPI を使用して認証する ASP.NET MVC Web サイトがあります。基本認証とセッション トークンに ThinkTecture IdentityModel を使用しています。これはローカルでも Azure Web サイトでも問題なく動作します。ただし、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));
        }

4

1 に答える 1

1

SessionTokenConfiguration に固定の署名キーを設定します。あなたは間違いなくそれが必要です。

于 2013-04-29T06:05:39.597 に答える