Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using CMS.CMSHelper;
- using CMS.GlobalHelper;
- using CMS.SettingsProvider;
- using CMS.SiteProvider;
- using System;
- using System.Configuration;
- using System.IO;
- using System.Security.Cryptography;
- using System.Text;
- using System.Web;
- using System.Web.Http;
- using ws.myadvantage.com.au.Model;
- namespace ws.myadvantage.com.au.Controllers
- {
- static class KenticoStateManager
- {
- private static bool Connected { get; set; }
- public static void Init()
- {
- if (!Connected)
- {
- DataConnectionFactory.ConnectionString = ConfigurationManager.AppSettings["ConnectionString"];
- CMSContext.Init();
- Connected = true;
- }
- }
- }
- [Route("user")]
- public class UserController : ApiController
- {
- public UserController()
- {
- KenticoStateManager.Init();
- }
- public Token Get()
- {
- return new Token {Value = Authenticate(QueryHelper.GetString("username", ""), QueryHelper.GetString("password", "")) };
- }
- private string Authenticate(string username, string password)
- {
- var userInfo = UserInfoProvider.AuthenticateUser(username, password,
- ConfigurationManager.AppSettings["SiteName"]);
- if (userInfo == null || userInfo.UserIsEditor || userInfo.UserIsGlobalAdministrator) return string.Empty;
- var token = userInfo.UserID.ToString() + "|" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt");
- var key = Encoding.ASCII.GetBytes(ConfigurationManager.AppSettings["CryptoKey"]);
- var cryptoServiceProvider = new DESCryptoServiceProvider();
- var encryptor = cryptoServiceProvider.CreateEncryptor(key, key);
- var buffer = Encoding.ASCII.GetBytes(token);
- var encryptedToken = encryptor.TransformFinalBlock(buffer, 0, buffer.Length);
- return HttpUtility.UrlEncode(Convert.ToBase64String(encryptedToken));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment