我应该使用Shared
,还是只使用Public
功能并在需要时启动课程?我已经阅读了很多文章,但仍然无法理解这里的最佳选择。
这是我想要的代码。有问题的userid
是用户登录时设置的字符串。由于我可能需要多个页面中的用户ID,我想将其添加到类中。
Public Shared ReadOnly Property userid As String
Get
Dim ck As HttpCookie = HttpContext.Current.Request.Cookies(FormsAuthentication.FormsCookieName)
Dim tkt As FormsAuthenticationTicket = FormsAuthentication.Decrypt(ck.Value)
Return tkt.Name
End Get
End Property
答案 0 :(得分:1)
在处理身份验证时,我几乎不会说你应该利用Shared
成员 - 但是因为你正在使用Cookies
我看不出这个代码不能正常工作的原因并使其更容易访问。
答案 1 :(得分:1)
完全可以接受。您可以在许多开源项目中看到在静态方法中访问HttpContext.Current
。
仅供参考: HttpContext.Current
必须在当前调用线程上,因此请务必检查HttpContext.Current
是否为空。