Song.Site/Mobile/WeixinpubLogin.ashx.cs

(开头部分) 32KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using WeiSha.Common;
using Song.ServiceInterfaces;
using System.Xml;
using Song.Extend;
using System.Text.RegularExpressions;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;

namespace Song.Site.Mobile
{
    /// <summary>
    /// 微信公从号内的登录
    /// </summary>
    public class WeixinpubLogin : BasePage
    {

        protected override void InitPageTemplate(HttpContext context)
        {
            //一些设置项
            WeiSha.Common.CustomConfig config = CustomConfig.Load(this.Organ.Org_Config);
            this.Document.SetValue("IsRegStudent", config["IsRegStudent"].Value.Boolean ?? true);   //是否允许注册   

            #region 此段代码用于取token与openid
            string code = WeiSha.Common.Request.QueryString["code"].String;
            if (Request.ServerVariables["REQUEST_METHOD"] == "GET" && !string.IsNullOrWhiteSpace(code))
            {
                string orgid = WeiSha.Common.Request.QueryString["state"].String;     //状码码是机构id                
                string openid = string.Empty;
                string access_token = getToken(out openid);
                //微信登录的回调域,(用途:如果回调域不是根域,则不再取当前机构二级域名)
                string returl = Business.Do<ISystemPara>()["WeixinpubReturl"].Value ?? WeiSha.Common.Server.MainName;
                if (!string.IsNullOrWhiteSpace(returl))
                {
                    if (returl.StartsWith("http://")) returl = returl.Substring(7);
                    if (returl.StartsWith("https://")) returl = returl.Substring(8);
                }               
                //如果回调域与根域相同,则转到当前机构的二级域名
                if (returl.Equals(WeiSha.Common.Server.MainName, StringComparison.CurrentCultureIgnoreCase))
                {
                    Song.Entities.Organization org = getOrgan(-1);
                    returl = org.Org_TwoDomain + "." + WeiSha.Common.Server.MainName;
                }                
                string uri = "{0}/mobile/{1}?token={2}&openid={3}&orgid={4}";
                uri = string.Format(uri, returl, WeiSha.Common.Request.Page.FileName, access_token, openid, orgid);
                this.Document.Variables.SetValue("gourl", uri); //传到客户端,进行跳转
                return;
            }
            #endregion

            #region 具体操作代码
            string token = WeiSha.Common.Request.QueryString["token"].String;
            if (Request.ServerVariables["REQUEST_METHOD"] == "GET" && !string.IsNullOrWhiteSpace(token))
            {
                _StateForGET();
            }
            #endregion
后面还有 568 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。