SiteA/Class/AuthBase.cs

(开头部分) 2KB

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

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;

namespace SSO.SiteA.Class
{
    /// <summary>
    /// 授权页面基类,所有需要授权的页面继承该类即可。
    /// </summary>
    public class AuthBase : System.Web.UI.Page
    {
        protected override void OnLoad(EventArgs e)
        {
            if (Session["A.Cert"] != null)
            {
                //分站凭证存在
                Response.Write("恭喜,分站凭证存在,您被授权访问该页面!");
            }
            else
            {
                //令牌验证结果返回
                if (Request.QueryString["token"] != null)
                {
                    //持有令牌
                    if (Request.QueryString["token"] != "$token$")
                    {
                        string tokenValue = Request.QueryString["token"];
                        //调用WebService获取主站凭证
                        //防止令牌伪造
                        //此处还可使用公钥私钥的非对称加密策略
                        SSO.SiteA.ServiceReference1.PassportServiceSoapClient passportService = new SSO.SiteA.ServiceReference1.PassportServiceSoapClient();
                        object cert = passportService.TokenGetCert(tokenValue);
                        if (cert != null)
                        {
                            //令牌正确
                            Session["A.Cert"] = cert;
                            Response.Write("恭喜,令牌存在,您被授权访问该页面!");
                        }
                        else
                        {
                            //令牌错误,去Passport登录
                            Response.Redirect(SSO.Common.Tools.TokenReplace());
                        }
                    }
                    //未持有令牌,去Passport登录
                    else
                    {
                        Response.Redirect(SSO.Common.Tools.TokenReplace());
                    }
                }
                //未进行令牌验证,去Passport验证
                else
                {
后面还有 10 行代码,解锁后查看完整代码

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

AI 解读 AI

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

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