我有一个ASP.NET Web服务,可由某些软件应用程序访问。在我的“登录”方法中,我创建了一个FormsAuthenticationTicket,对其进行加密,然后返回给Web服务用户。此票据预计将发送到每种Web服务方法:GetLicense,CreateProduct等。 收到故障单后,如果已过期,则会对其进行解密和检查。
问题是“注销”方法:没有任何强制票证到期的能力。如果它是以60分钟长度创建的,则可以将其标记为已过期。不过用户称之为“Logout”方法,他以后仍然可以使用同一张票。
请告知,为Web服务用户授权的最佳做法是什么?
非常感谢!
P.S。欢迎任何想法。可能我需要使用另一种机制(不是FormsAuthenticationTicket对象)。
答案 0 :(得分:0)
我认为简单的解决方案是使用
将票证放入HttpContext.Current.Application集合HttpContext.Current.Application.Add(ticket)
当用户尝试使用票证时 - 检查它是否在收集中。如果是 - 请检查它是否已过期......
当用户调用'Logout'方法时 - 我将从集合中删除票证......
似乎是一种强制使用FormsAuthenticationTicket到期的快速解决方法。
如果您发现缺少此方法,请与我们联系。
感谢。