2

我应该使用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
4

2 回答 2

1

我几乎永远不会说您Shared在处理身份验证时应该利用成员 - 但是由于您正在使用Cookies我看不出任何原因该代码不能按原样工作并使其更易于访问。

于 2013-04-09T20:21:41.483 回答
1

这是完全可以接受的。HttpContext.Current您可以在很多开源项目中看到访问内部静态方法。

仅供参考: HttpContext.Current必须在当前调用线程上,因此请确保检查HttpContext.Current不为空。

于 2013-04-09T21:21:23.553 回答