我有一个函数来检查cookie(按名称)是否存在:
Private Function cookieExists(ByVal cName As String) As Boolean
For Each c As HttpCookie In Response.Cookies
If c.Name = cName Then Return True
Next
Return False
End Function
我有一个以特定于应用程序的方式处理cookie的类,我想将所有与cookie相关的函数合并到这个类中。但是,如果我只是将它从aspx页面(它当前所在的位置)移动到上述类,我就无法使用此代码,因为我收到错误:'Name' Response is not declared.
我修改了类以允许将引用传递给 Response
对象:
Public Function cookieExists(ByVal cName As String, ByRef Response As HttpResponse) As Boolean
For Each c As HttpCookie In Response.Cookies
If c.Name = cName Then Return True
Next
Return False
End Function
我的问题是:有更好的方法吗?
答案 0 :(得分:13)
HttpContext.Current.Response
HttpContext.Current.Request
答案 1 :(得分:1)
HttpContext.Current使用Ambient Context设计模式,因此您应该能够从代码中的任何位置访问Response对象。这非常有用。
对于那些想知道的人来说,Ambient Context模式非常酷,详情如下:
http://aabs.wordpress.com/2007/12/31/the-ambient-context-design-pattern-in-net/