我有一个MVC3项目,可以在Web应用程序模式下在iPad上运行.我使用FormsAuthentication实现登录/注销功能,该功能调用FormsAuthentication.SetAuthCookie(model.Username, true)将登录信息存储到cookie中.在包括safari mobile在内的所有主要浏览器中,cookie会在会话期间持久保存.只有在网络应用程序模式下,有时会在浏览网络应用程序时清除cookie,并且在关闭网络应用程序后肯定会删除它.是否有可能在Web-app模式下跨会话保存登录信息?
我知道可以使用HTML5本地存储功能,但我不知道如何FormsAuthentication.SetAuthCookie(model.Username, true)使用新的本地存储手动实现.除此之外,我不确定本地存储是否足够安全以存储此类关键数据.
给定以下简单的类:
class Observer {
private subscribers: Map<string, Array<((data: any) => void)>> = new Map();
public subscribe(event: string, callback: (data: any) => void) {
if (!this.subscribers.has(event)) {
this.subscribers.set(event, []);
}
this.subscribers.get(event).push(callback); //tsc says: Object is possibly 'undefined'
}
}
Run Code Online (Sandbox Code Playgroud)
此外,在tsconfig.json中,标记strictNullChecks和strict被启用。
尽管subscribers已检查当前事件的键,但打字稿编译器会抱怨上面显示的错误消息(this.subscribers.get(event)可能未定义)。
如果我不是完全错误,在这种情况下this.subscribers.get(event)绝对不能undefined。
我如何摆脱该信息?