00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 using System;
00013 using System.Net;
00014 using Microsoft.Office.Project.Server.Library;
00015
00016 namespace Mcs.Epm.MicrosoftProject.mpFx.Proxies
00017 {
00018 public class AdminProxy : AdminWebService.Admin
00019 {
00020 public string ContextString { get; set; }
00021
00022 protected override WebRequest GetWebRequest(Uri uri)
00023 {
00024 WebRequest webRequest = base.GetWebRequest(uri);
00025
00026 if (!string.IsNullOrEmpty(ContextString))
00027 {
00028 webRequest.UseDefaultCredentials = true;
00029 webRequest.Credentials = CredentialCache.DefaultNetworkCredentials;
00030 webRequest.Headers.Add("PjAuth", ContextString);
00031 webRequest.PreAuthenticate = true;
00032 }
00033
00034 return webRequest;
00035 }
00036
00037 public void SetImpersonationContext(bool isWindowsUser,
00038 String userAccount,
00039 Guid userGuid,
00040 Guid trackingGuid,
00041 Guid siteId,
00042 String lcid)
00043 {
00044 ContextString = GetImpersonationContext(isWindowsUser,
00045 userAccount,
00046 userGuid,
00047 trackingGuid,
00048 siteId,
00049 lcid);
00050 }
00051
00052 public string GetImpersonationContext(bool isWindowsUser,
00053 String userAccount,
00054 Guid userGuid,
00055 Guid trackingGuid,
00056 Guid siteId,
00057 String lcid)
00058 {
00059 PSContextInfo contextInfo = new PSContextInfo(isWindowsUser,
00060 userAccount,
00061 userGuid,
00062 trackingGuid,
00063 siteId,
00064 lcid);
00065
00066 string contextString = PSContextInfo.SerializeToString(contextInfo);
00067 return contextString;
00068 }
00069
00070 public AdminProxy()
00071 {
00072 ContextString = string.Empty;
00073 }
00074 }
00075 }