Webservice.cs
上传用户:zhuzg88
上传日期:2018-04-24
资源大小:868k
文件大小:12k
源码类别:

SilverLight

开发平台:

C#

  1. // SilverlightDesktop.Net - http://www.SilverlightDesktop.net
  2. // Copyright (c) 2008
  3. // by SilverlightDesktop.Net
  4. //
  5. // Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
  6. // documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
  7. // the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and 
  8. // to permit persons to whom the Software is furnished to do so, subject to the following conditions:
  9. //
  10. // The above copyright notice and this permission notice shall be included in all copies or substantial portions 
  11. // of the Software.
  12. //
  13. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
  14. // TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
  15. // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
  16. // CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
  17. // DEALINGS IN THE SOFTWARE.
  18. using System;
  19. using System.Web;
  20. using System.Web.Services;
  21. using System.Xml;
  22. using System.Web.Services.Protocols;
  23. using System.Web.Script.Services;
  24. using System.Data;
  25. using System.Configuration;
  26. using System.ServiceModel;
  27. using System.Runtime.Serialization;
  28. using System.IdentityModel;
  29. using System.Collections.Generic;
  30. using SilverlightDesktopCore.DAL;
  31. using System.Linq;
  32. [WebService(Namespace = "http://SilverlightDesktop.net/")]
  33. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  34. [ScriptService()]
  35. public partial class WebService : System.Web.Services.WebService
  36. {
  37.     #region HelloUser
  38.     [WebMethod(Description = "HelloUser")]
  39.     [ScriptMethod()]
  40.     public string HelloUser(int PortalID, int ModuleId, int UserID, string Password)
  41.     {
  42.         string strIPAddress = this.Context.Request.UserHostAddress;
  43.         SilverlightDesktopAuthendicationHeader SilverlightDesktopAuthendicationHeader = new SilverlightDesktopAuthendicationHeader();
  44.         SilverlightDesktopAuthendicationHeader.PortalID = PortalID;
  45.         SilverlightDesktopAuthendicationHeader.UserID = UserID;
  46.         SilverlightDesktopAuthendicationHeader.Password = Password;
  47.         SilverlightDesktopAuthendicationHeader.ModuleId = ModuleId;
  48.         SilverlightDesktopAuthendicationHeader.IPAddress = strIPAddress;
  49.         string response = "";
  50.         Authendication Authendication = new Authendication(SilverlightDesktopAuthendicationHeader);
  51.         if (Authendication.IsUserValid())
  52.         {
  53.             UserInfo objUser = Authendication.GetUserInfo();
  54.             response = String.Format("Hello {0}! [{1}]", objUser.DisplayName, strIPAddress);
  55.         }
  56.         else
  57.         {
  58.             response = String.Format("Hello SilverlightDesktop Visitor! [{0}]", strIPAddress);
  59.         }
  60.         return response;
  61.     }
  62.     #endregion
  63.     #region Logout
  64.     [WebMethod(Description = "Logout")]
  65.     [ScriptMethod()]
  66.     public void Logout(int PortalID, int ModuleId, int UserID, string Password)
  67.     {
  68.         string strIPAddress = this.Context.Request.UserHostAddress;
  69.         SilverlightDesktopAuthendicationHeader SilverlightDesktopAuthendicationHeader = new SilverlightDesktopAuthendicationHeader();
  70.         SilverlightDesktopAuthendicationHeader.PortalID = PortalID;
  71.         SilverlightDesktopAuthendicationHeader.UserID = UserID;
  72.         SilverlightDesktopAuthendicationHeader.Password = Password;
  73.         SilverlightDesktopAuthendicationHeader.ModuleId = ModuleId;
  74.         SilverlightDesktopAuthendicationHeader.IPAddress = strIPAddress;
  75.         Authendication Authendication = new Authendication(SilverlightDesktopAuthendicationHeader);
  76.         if (Authendication.IsUserValid())
  77.         {
  78.             Authendication.SetSilverlightKey();
  79.         }
  80.     }
  81.     #endregion
  82.     #region GetDesktopModules
  83.     [WebMethod(Description = "GetDesktopModules")]
  84.     [ScriptMethod()]
  85.     public List<SilverlightDesktopModule> GetDesktopModules(int PortalID, int ModuleId, int UserID, string Password)
  86.     {
  87.         string strIPAddress = this.Context.Request.UserHostAddress;
  88.         SilverlightDesktopAuthendicationHeader SilverlightDesktopAuthendicationHeader = new SilverlightDesktopAuthendicationHeader();
  89.         SilverlightDesktopAuthendicationHeader.PortalID = PortalID;
  90.         SilverlightDesktopAuthendicationHeader.UserID = UserID;
  91.         SilverlightDesktopAuthendicationHeader.Password = Password;
  92.         SilverlightDesktopAuthendicationHeader.ModuleId = ModuleId;
  93.         SilverlightDesktopAuthendicationHeader.IPAddress = strIPAddress;
  94.         List<SilverlightDesktopModule> colSilverlightDesktopModule = new List<SilverlightDesktopModule>();
  95.         Authendication Authendication = new Authendication(SilverlightDesktopAuthendicationHeader);
  96.         if (Authendication.IsUserValid())
  97.         {
  98.             UserInfo objUser = Authendication.GetUserInfo();
  99.             SilverlightDesktopDAL SilverlightDesktopDAL = new SilverlightDesktopDAL();
  100.             var SilverlightDesktopModules = from DesktopModules in SilverlightDesktopDAL.SilverlightDesktopModules
  101.                                             select DesktopModules;
  102.             foreach (var DesktopModule in SilverlightDesktopModules)
  103.             {
  104.                 if (objUser.IsInRole(DesktopModule.Role) || DesktopModule.Role == "Any")
  105.                 {
  106.                     SilverlightDesktopModule SilverlightDesktopModule = new SilverlightDesktopModule();
  107.                     SilverlightDesktopModule.AllowMultipleInstances = DesktopModule.AllowMultipleInstances;
  108.                     SilverlightDesktopModule.AssemblyName = DesktopModule.AssemblyName;
  109.                     SilverlightDesktopModule.ClassName = DesktopModule.ClassName;
  110.                     SilverlightDesktopModule.IconName = DesktopModule.IconName;
  111.                     SilverlightDesktopModule.ModuleDescription = DesktopModule.ModuleDescription;
  112.                     SilverlightDesktopModule.ModuleID = DesktopModule.ModuleID;
  113.                     SilverlightDesktopModule.ModuleName = DesktopModule.ModuleName;
  114.                     SilverlightDesktopModule.Role = DesktopModule.Role;
  115.                     SilverlightDesktopModule.WindowSize = DesktopModule.WindowSize;
  116.                     colSilverlightDesktopModule.Add(SilverlightDesktopModule);
  117.                 }
  118.             }
  119.         }
  120.         else
  121.         {
  122.             SilverlightDesktopDAL SilverlightDesktopDAL = new SilverlightDesktopDAL();
  123.             var SilverlightDesktopModules = from DesktopModules in SilverlightDesktopDAL.SilverlightDesktopModules
  124.                                             where DesktopModules.Role == "Any"
  125.                                             select DesktopModules;
  126.             foreach (var DesktopModule in SilverlightDesktopModules)
  127.             {
  128.                 SilverlightDesktopModule SilverlightDesktopModule = new SilverlightDesktopModule();
  129.                 SilverlightDesktopModule.AllowMultipleInstances = DesktopModule.AllowMultipleInstances;
  130.                 SilverlightDesktopModule.AssemblyName = DesktopModule.AssemblyName;
  131.                 SilverlightDesktopModule.ClassName = DesktopModule.ClassName;
  132.                 SilverlightDesktopModule.IconName = DesktopModule.IconName;
  133.                 SilverlightDesktopModule.ModuleDescription = DesktopModule.ModuleDescription;
  134.                 SilverlightDesktopModule.ModuleID = DesktopModule.ModuleID;
  135.                 SilverlightDesktopModule.ModuleName = DesktopModule.ModuleName;
  136.                 SilverlightDesktopModule.Role = DesktopModule.Role;
  137.                 SilverlightDesktopModule.WindowSize = DesktopModule.WindowSize;
  138.                 colSilverlightDesktopModule.Add(SilverlightDesktopModule);
  139.             }
  140.         }
  141.         return colSilverlightDesktopModule;
  142.     }
  143.     #endregion
  144.     #region GetDesktopModule
  145.     [WebMethod(Description = "GetDesktopModule")]
  146.     [ScriptMethod()]
  147.     public SilverlightDesktopModule GetDesktopModule(int DesktopModuleID)
  148.     {
  149.         SilverlightDesktopModule SilverlightDesktopModule = new SilverlightDesktopModule();
  150.         SilverlightDesktopDAL SilverlightDesktopDAL = new SilverlightDesktopDAL();
  151.         var SilverlightDesktopModules = (from DesktopModules in SilverlightDesktopDAL.SilverlightDesktopModules
  152.                                          where DesktopModules.ModuleID == DesktopModuleID
  153.                                          select DesktopModules).FirstOrDefault();
  154.         SilverlightDesktopModule.AllowMultipleInstances = SilverlightDesktopModules.AllowMultipleInstances;
  155.         SilverlightDesktopModule.AssemblyName = SilverlightDesktopModules.AssemblyName;
  156.         SilverlightDesktopModule.ClassName = SilverlightDesktopModules.ClassName;
  157.         SilverlightDesktopModule.IconName = SilverlightDesktopModules.IconName;
  158.         SilverlightDesktopModule.ModuleDescription = SilverlightDesktopModules.ModuleDescription;
  159.         SilverlightDesktopModule.ModuleID = SilverlightDesktopModules.ModuleID;
  160.         SilverlightDesktopModule.ModuleName = SilverlightDesktopModules.ModuleName;
  161.         SilverlightDesktopModule.Role = SilverlightDesktopModules.Role;
  162.         SilverlightDesktopModule.WindowSize = SilverlightDesktopModules.WindowSize;
  163.         return SilverlightDesktopModule;
  164.     }
  165.     #endregion
  166.     #region GetDesktopModuleByUser
  167.     [WebMethod(Description = "GetDesktopModuleByUser")]
  168.     [ScriptMethod()]
  169.     public SilverlightDesktopModule GetDesktopModuleByUser(int PortalID, int UserID, int DesktopModuleID)
  170.     {
  171.         Authendication Authendication = new Authendication();
  172.         UserInfo objUser = Authendication.GetUserInfo(PortalID, UserID);
  173.         SilverlightDesktopModule SilverlightDesktopModule = new SilverlightDesktopModule();
  174.         SilverlightDesktopDAL SilverlightDesktopDAL = new SilverlightDesktopDAL();
  175.         var SilverlightDesktopModules = (from DesktopModules in SilverlightDesktopDAL.SilverlightDesktopModules
  176.                                          where DesktopModules.ModuleID == DesktopModuleID
  177.                                          select DesktopModules).FirstOrDefault();
  178.         // ModuleID was not found
  179.         // The module may have been deleted
  180.         if (SilverlightDesktopModules == null)
  181.         {
  182.             // Set the ModuleID to -1 so the Silverlight control
  183.             // will realize that Module was deleted and that the Toolbar should be shown
  184.             SilverlightDesktopModule.ModuleID = -1;
  185.             return SilverlightDesktopModule;
  186.         }
  187.         // Is user in the correct role to see the module?
  188.         if (!objUser.IsInRole(SilverlightDesktopModules.Role) & !objUser.IsSuperUser)
  189.         {
  190.             // Set the ModuleID to 0 so the Silverlight control
  191.             // will not load it
  192.             SilverlightDesktopModule.ModuleID = 0;
  193.             return SilverlightDesktopModule;
  194.         }
  195.         SilverlightDesktopModule.AllowMultipleInstances = SilverlightDesktopModules.AllowMultipleInstances;
  196.         SilverlightDesktopModule.AssemblyName = SilverlightDesktopModules.AssemblyName;
  197.         SilverlightDesktopModule.ClassName = SilverlightDesktopModules.ClassName;
  198.         SilverlightDesktopModule.IconName = SilverlightDesktopModules.IconName;
  199.         SilverlightDesktopModule.ModuleDescription = SilverlightDesktopModules.ModuleDescription;
  200.         SilverlightDesktopModule.ModuleID = SilverlightDesktopModules.ModuleID;
  201.         SilverlightDesktopModule.ModuleName = SilverlightDesktopModules.ModuleName;
  202.         SilverlightDesktopModule.Role = SilverlightDesktopModules.Role;
  203.         SilverlightDesktopModule.WindowSize = SilverlightDesktopModules.WindowSize;
  204.         return SilverlightDesktopModule;
  205.     }
  206.     #endregion
  207. }