我目前正在尝试保护我们的应用程序,以便在许可证过期时无法使用。我们的数据库中存储了一个注册密钥,我用它来确定许可证的有效性。
我最初的想法是在 global.asax 文件中使用 Session_Start 来参考许可证详细信息,并在必要时重定向到“更新您的许可证页面”。在重定向之后,我在控制器操作中调用 Session.Abandon() 以便对页面的任何进一步请求都将重复相同的过程。
这种方法的问题是,如果用户刷新页面,我似乎会出现重定向循环。这让我认为 Session_Start 不是最好的主意,但我试图避免将代码放在 BeginRequest 或类似中。在有效尝试更新许可证期间绕过也会很麻烦。
我目前修改了这个想法,以便在加载错误页面以在服务器端触发 Session.Abandon 时进行 AJAX 调用,但这仍然感觉不对,并且如果有人意识到它是如何工作的,就会被滥用。
整个应用程序使用 Windows 身份验证进行保护,因此我无法在登录尝试期间评估许可,而这正是我对表单身份验证所做的。
对替代方法有什么建议吗?