public static SiteUser LoadCurrentUser()
{
...
   if (userService_ == null)
   {
       lock (userServiceMx_)
       {
           if (userService_ == null)
           {
               IUserService service =
ContainerWebAccessorUtil.Container.Resolve<IUserService>();
               Thread.MemoryBarrier();
               // ^ makes sure all out-of-order writes have completed
               userService_ = service;
           }
       }
   }
   return userService_.GetSiteUserByUid(new
Guid(HttpContext.Current.User.Identity.Name));
}

...
private static object userServiceMx_ = new object();

Cheers,
Stoyan

On 4/26/07, Paul Cowan <[EMAIL PROTECTED]> wrote:
Hi,

I have the following class:

public sealed class UserHelper
{
    private static IUserService _userService;

    public static SiteUser LoadCurrentUser()
    {
        if ((HttpContext.Current.User == null) || 
(!HttpContext.Current.User.Identity.IsAuthenticated))
            throw new Exception("User is not authenticated.");
        if (_userService == null)
            _userService = 
ContainerWebAccessorUtil.Container.Resolve<IUserService>();
        return _userService.GetSiteUserByUid(new 
Guid(HttpContext.Current.User.Identity.Name));
      }
}

My question is, is this method thread safe from an ASP.NET application?

Thanks
Paul
[EMAIL PROTECTED]

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to