You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Gateway/Proxy/SiteAuthActivity.cs

58 lines
2.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Collections;
using System.Reflection;
using UMC.Web;
using UMC.Data.Entities;
using UMC.Web.UI;
using UMC.ITME.Entities;
namespace UMC.ITME.Activities
{
/// <summary>
/// 邮箱账户
/// </summary>
[UMC.Web.Apiumc("ITME", "Auth", Auth = WebAuthType.Guest)]
public class SiteAuthActivity : WebActivity
{
public override void ProcessActivity(WebRequest request, WebResponse response)
{
var seesionKey = Utility.MD5(this.Context.Token.Device.Value);
var sesion = UMC.Data.DataFactory.Instance().Session(this.Context.Token.Device.ToString());
if (sesion != null)
{
sesion.SessionKey = seesionKey;
UMC.Data.DataFactory.Instance().Put(sesion);
var oauth_callback = this.AsyncDialog("oauth_callback", "none");
if (string.Equals("none", oauth_callback))
{
response.Redirect(new WebMeta().Put("AuthKey", seesionKey));
}
else
{
var UI = this.AsyncDialog("UI", "none");
var url = new Uri(Uri.UnescapeDataString(oauth_callback));
if (String.IsNullOrEmpty(url.Query))
{
this.Context.Send(new WebMeta().UIEvent("UI.Browser", UI, new WebMeta("value", new Uri(url, $"/!/{seesionKey}{url.PathAndQuery}?_t={Utility.TimeSpan()}").AbsoluteUri)), true);//, new WebMeta().Put("value", oauth_callback), true);
}
else
{
this.Context.Send(new WebMeta().UIEvent("UI.Browser", UI, new WebMeta("value", new Uri(url, $"/!/{seesionKey}{url.PathAndQuery}&_t={Utility.TimeSpan()}").AbsoluteUri)), true);//, new WebMeta().Put("value", oauth_callback), true);
}
}
}
}
}
}