无法使用令牌进行身份验证

时间:2013-04-27 16:46:32

标签: iis asp.net-mvc-4 azure azure-web-roles thinktecture-ident-model

我有一个ASP.NET MVC网站,它使用ASP.NET WebAPI进行身份验证。我使用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));
        }

1 个答案:

答案 0 :(得分:1)

我在SessionTokenConfiguration上设置了一个固定的签名密钥。你肯定需要那个。