2010-03-08 85 views
2

我正在写一个使用窗体身份验证的ASP.NET MVC应用程序。目标客户端是各种移动Web浏览器。黑莓支持窗体身份验证 - ASP.NET MVC应用程序

当我使用BlackBerry 8530模拟器时,我的MVC应用程序按预期进行验证。我可以访问控制器方法用[Authorize]属性装饰的页面 - 没问题 - 它们显示,因此我假设我的表单身份验证工作正常。

使用物理Windows Mobile设备浏览我的网站,我有与BB模拟器相同的体验,表单身份验证按我的预期工作。

但是当我尝试使用Blackberry 8900物理设备访问该站点时,当我单击登录页面时,登录页面不断循环返回。该设备不保留它的“身份验证”状态。

我添加代码来验证这一点,我可以看到: Request.IsAuthenticated:假 User.Identity.IsAuthenticated:假

所以我的问题是什么下一步我可以尝试找出原因黑莓8900正在失去它的身份验证状态。这个cookie是相关的吗?

任何人有任何想法?

干杯 德里克

回答

1

在你的web.config,尽量把cookieless="true"sessionState标签

+0

葛瑞格尔,当我添加了无Cookie =“真”它打破了URL重写。 – 2010-03-08 22:16:36

+0

@Derek Mitchell如果你不能修改你的URL路由没有cookie,我看到的唯一剩下的解决方案是添加隐藏字段与会话ID和转换每个链接的形式... – Gregoire 2010-03-09 14:27:11

+0

感谢您的建议。我想我可以改变路线以适应无cookie的sesstionState,但我并不想让整个MVC应用程序变得无cookie。大多数移动客户端似乎没有任何关于基于表单的身份验证的问题。根据您的想法,我可以尝试使用会话ID的自定义授权属性... – 2010-03-10 21:45:23