使用Shared属性进行身份验证验证是否安全?

时间:2013-04-09 20:17:58

标签: asp.net vb.net function shared public

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

2 个答案:

答案 0 :(得分:1)

在处理身份验证时,我几乎不会说你应该利用Shared成员 - 但是因为你正在使用Cookies我看不出这个代码不能正常工作的原因并使其更容易访问。

答案 1 :(得分:1)

完全可以接受。您可以在许多开源项目中看到在静态方法中访问HttpContext.Current

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