我的应用程序使用典型的身份验证方案,其中用户使用他的凭据登录服务器,服务器返回一个身份验证令牌,然后将其本地存储在客户端(iPhone)上.
现在不太可能存储的身份验证令牌随着时间的推移而变得无效.由于使用该无效令牌发出的每个请求都会失败,因此我希望在第一次发生该故障时通过"将用户登出"应用程序来处理.注意:该请求可以在后台线程中进行,因为应用程序正在定期与服务器同步.
退出意味着:
因此,用户可能正在查看应用内的某些内容,而令牌无效并且注销过程已开始.
当所有内容都被删除(#2)时,仅向她提供登录控制器是不够的,因为在登录并解除该控制器之后,之前的内容实际上不再存在.
为了防止这种副作用,我想彻底删除层次结构中的所有视图控制器,无论触发注销时的深度如何.
所以我的问题是:
在呈现登录控制器之前,"杀死"所有活动控制器的最佳方法是什么?
我试图弄清楚如何在我的MVC 2 ViewModel中使用DisplayAttribute来使用Html.LabelFor()帮助器.
也不
public class TestModel
{
[Display(ResourceType = typeof(Localization.Labels))]
public string Text { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
也不
public class TestModel
{
[Display(Name = "test")]
public string Text { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
似乎工作.本地化必需属性按预期工作:
[Required(ErrorMessageResourceName = "Test", ErrorMessageResourceType = typeof(Localization.Labels))]
Run Code Online (Sandbox Code Playgroud)
我正在使用VS2010 RC.有人跑了吗?
我目前正在开发一个专为智能手机和平板电脑设计的客户端应用程序.因此它将获得两种不同的布局模式.
虽然用户可以在两种模式之间切换,但我必须在第一次使用应用程序时预先设置模式.
所以我正在寻找一种可靠的方法来自动检测用户是否带有打击垫或智能手机(桌面浏览器不相关).
我可以检查一下浏览器的分辨率,但我不确定这是否是正确的罗马方式,因为960x640px的iPhone 4的分辨率几乎与1024x768的iPad屏幕分辨率一样高,并且要记住Android设备.
有什么建议?
我正在优化我关于内存消耗的应用程序,并且发现GC(sgen)不时很懒,所以它不会清理到目前为止已经处理了很长时间的所有东西.我甚至不知道是否会收集这些内容,这对于所有指向本机资源(UIImage等)的指针尤其重要.
所以我开始在我的应用程序中的某些点手动调用GC,例如在弹出或关闭控制器时.
GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);
Run Code Online (Sandbox Code Playgroud)
我知道这需要一些时间才能完成,但是我还有其他的缺点需要考虑吗?