polyu.ap.panopto.com Open in urlscan Pro
52.77.30.243  Public Scan

Submitted URL: http://polyu.ap.panopto.com/
Effective URL: https://polyu.ap.panopto.com/Panopto/Pages/Auth/Login.aspx?ReturnUrl=https%3A%2F%2Fpolyu.ap.panopto.com%2FPanopto%2FPages%2FH...
Submission: On October 27 via api from US — Scanned from SG

Form analysis 1 forms found in the DOM

POST ./Login.aspx?ReturnUrl=https%3a%2f%2fpolyu.ap.panopto.com%2fPanopto%2fPages%2fHome.aspx

<form method="post" action="./Login.aspx?ReturnUrl=https%3a%2f%2fpolyu.ap.panopto.com%2fPanopto%2fPages%2fHome.aspx" id="rootForm">
  <div class="aspNetHidden">
    <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="">
    <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="">
    <input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="">
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
      value="/wEPDwUJMjY0OTY4Njc2DxYCHhNWYWxpZGF0ZVJlcXVlc3RNb2RlAgEWAmYPZBYCAgEPZBYEAgoPDxYCHgdWaXNpYmxlZ2QWAmYPFgIfAWgWEGYPFgIeCWlubmVyaHRtbAVC5aaC5p6c5L2g5bey57uP5a6J6KOF5LqG5b2V5YOP5py677yM5L2g5Y+v5Lul5LuO6L+Z6YeM5ZCv5Yqo5a6D44CCZAIBDxYCHgRocmVmBUdodHRwczovL3BvbHl1LmFwLnBhbm9wdG8uY29tL1Bhbm9wdG8vUGFnZXMvUmVjb3JkZXIvTGF1bmNoUmVjb3JkZXIuYXNweGQCAg8WAh8CBWPlpoLmnpwgUGFub3B0b+ayoeacieWQr+WKqO+8jOivt+ehruS/neaCqOS4i+i9veW5tuWuieijheS6huS4i+mdouacgOaWsOeJiOacrOeahFBhbm9wdG/lvZXlg4/mnLrjgIJkAgMPFgIfAwV2aHR0cHM6Ly9wb2x5dS5hcC5wYW5vcHRvLmNvbS9QYW5vcHRvL0NhY2hlLzE0LjYuMC4wMDAxNC9Tb2Z0d2FyZS9QYW5vcHRvUmVjb3JkZXIuZXhlP2FyY2g9WDg2JmFtcDt1c2VDdXN0b21CaW5hcnk9VHJ1ZWQCBA8WAh8DBXhodHRwczovL3BvbHl1LmFwLnBhbm9wdG8uY29tL1Bhbm9wdG8vQ2FjaGUvMTQuNi4wLjAwMDE0L1NvZnR3YXJlL1Bhbm9wdG9SZWNvcmRlci5leGU/YXJjaD1BbWQ2NCZhbXA7dXNlQ3VzdG9tQmluYXJ5PVRydWVkAgUPFgIfAwV6aHR0cHM6Ly9wb2x5dS5hcC5wYW5vcHRvLmNvbS9QYW5vcHRvL0NhY2hlLzE0LjYuMC4wMDAxNC9Tb2Z0d2FyZS9QYW5vcHRvJTIwUmVjb3JkZXIucGtnP2FyY2g9Tm9uZSZhbXA7dXNlQ3VzdG9tQmluYXJ5PVRydWVkAgYPZBYGZg8WAh8DBXxodHRwczovL3BvbHl1LmFwLnBhbm9wdG8uY29tL1Bhbm9wdG8vQ2FjaGUvMTQuNi4wLjAwMDE0L1NvZnR3YXJlL1Bhbm9wdG9SZW1vdGVSZWNvcmRlci5leGU/YXJjaD1YODYmYW1wO3VzZUN1c3RvbUJpbmFyeT1UcnVlZAIBDxYCHwMFfmh0dHBzOi8vcG9seXUuYXAucGFub3B0by5jb20vUGFub3B0by9DYWNoZS8xNC42LjAuMDAwMTQvU29mdHdhcmUvUGFub3B0b1JlbW90ZVJlY29yZGVyLmV4ZT9hcmNoPUFtZDY0JmFtcDt1c2VDdXN0b21CaW5hcnk9VHJ1ZWQCAg8WAh8CBZIBPGEgaHJlZj0nbWFpbHRvOmh0dHBzOi8vd3d3LnBvbHl1LmVkdS5oay9pdHNlcnZpY2VkZXNrJz7ogZTns7vkvaDnmoTns7vnu5/nrqHnkIblkZg8L2E+IOS7peWtpuS5oOabtOWkmuWFs+S6juWmguS9leS9v+eUqFBhbm9wdG/nibnngrnnmoTmlrnms5XjgIJkAgcPFgIfAwWEAWh0dHBzOi8vcG9seXUuYXAucGFub3B0by5jb20vUGFub3B0by9DYWNoZS8xNC42LjAuMDAwMTQvU29mdHdhcmUvUGFub3B0b1JlY29yZGVyTm9JbnN0YWxsYXRpb24uemlwP2FyY2g9WDg2JmFtcDt1c2VDdXN0b21CaW5hcnk9VHJ1ZWQCCw9kFgJmD2QWAmYPZBYCAgEPZBYCZg9kFgJmD2QWBgIFD2QWBAIBD2QWAgIBD2QWBAIBD2QWAgIBDxAPFgIeC18hRGF0YUJvdW5kZxYCHgphcmlhLWxhYmVsBQznmbvlvZXph4fnlKgQFQQHUGFub3B0bwpCbGFja2JvYXJkLVBPTFlVIFBvcnRhbCAoRm9yIG5vbi1MTVMsIFJlc2VhcmNoIGFuZCBtb3JlKRBCbGFja2JvYXJkIFVsdHJhFQQPcGFub3B0b2ludGVybmFsCmJsYWNrYm9hcmQEbzM2NQ9CbGFja2JvYXJkVWx0cmEUKwMEZ2dnZ2RkAgMPZBYCZg9kFgYCAQ8PFgIfAWhkFgZmDw9kFgQeC3BsYWNlaG9sZGVyBQznlKjmiLflkI3vvJofBQUM55So5oi35ZCN77yaZAIBDw9kFgQfBgUG5a+G56CBHwUFBuWvhueggWQCAg8QDxYCHgdDaGVja2VkaGQWAh4FY2xhc3MFDm1hdGVyaWFsLWljb25zZGQCAw8PFgIfAWhkFgICAQ8PZBYEHwYFDOeUteWtkOmCrueusR8FBQznlKjmiLflkI3vvJpkAgUPDxYCHwFnZBYCAgEPD2QWAh4Hb25jbGljawWbAXdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggKz0gKCh3aW5kb3cubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoJz8nKSA9PSAtMSkgPyAnPycgOiAnJicpICsgJ2luc3RhbmNlPWJsYWNrYm9hcmQnOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ZAIDD2QWAgIBD2QWAgIBD2QWAgIBDw9kFgQfBgUM55So5oi35ZCN77yaHwUFDOeUqOaIt+WQje+8mmQCBw8WAh8BaBYEAgEPZBYIZg8PFgIeBFRleHRkZGQCAg9kFgJmDw8WAh8KBQdQYW5vcHRvZGQCAw8WAh4Fc3R5bGUFDWRpc3BsYXk6bm9uZTsWAmYPDxYCHwpkZGQCBA9kFgJmDw8WAh8KBQnop4LnnIvogIVkZAIFD2QWAgICD2QWCAIBDw9kFgQfBgUM5b2T5YmN5a+G56CBHwUFDOW9k+WJjeWvhueggWQCAw8PZBYEHwYFCeaWsOWvhueggR8FBQnmlrDlr4bnoIFkAgUPD2QWBB8GBQznoa7orqTlr4bnoIEfBQUM56Gu6K6k5a+G56CBZAIHD2QWBAIBDw9kFgQfBgUP5a6J5YWo5oCn6Zeu6aKYHwUFD+WuieWFqOaAp+mXrumimGQCAw8PZBYEHwYFD+WuieWFqOaAp+WbnuetlB8FBQ/lronlhajmgKflm57nrZRkAgkPZBYCAgEPFgIfAWhkZM6yg5nmStx0y9L7DdVVfi2bgoUU0UMAqYNeQg/wiFev">
  </div>
  <script type="text/javascript">
    //<![CDATA[
    var theForm = document.forms['rootForm'];
    if (!theForm) {
      theForm = document.rootForm;
    }

    function __doPostBack(eventTarget, eventArgument) {
      if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
      }
    }
    //]]>
  </script>
  <script src="/Panopto/WebResource.axd?d=nF4vyWFqHBntNr9T_UBEcreHuDD0CLOC1IkXdYuDQHgLL-8yi6S2x19GNdDZlfx3vIE2kXm3FWa7Y1J48khWL_igPiH7CIB8sW_JxBPzVKw1&amp;t=637814653746327080" type="text/javascript"></script>
  <script type="text/javascript">
    //<![CDATA[
    var __cultureInfo = {
      "name": "zh-SG",
      "numberFormat": {
        "CurrencyDecimalDigits": 2,
        "CurrencyDecimalSeparator": ".",
        "IsReadOnly": true,
        "CurrencyGroupSizes": [3],
        "NumberGroupSizes": [3],
        "PercentGroupSizes": [3],
        "CurrencyGroupSeparator": ",",
        "CurrencySymbol": "$",
        "NaNSymbol": "NaN",
        "CurrencyNegativePattern": 1,
        "NumberNegativePattern": 1,
        "PercentPositivePattern": 1,
        "PercentNegativePattern": 1,
        "NegativeInfinitySymbol": "-∞",
        "NegativeSign": "-",
        "NumberDecimalDigits": 2,
        "NumberDecimalSeparator": ".",
        "NumberGroupSeparator": ",",
        "CurrencyPositivePattern": 0,
        "PositiveInfinitySymbol": "∞",
        "PositiveSign": "+",
        "PercentDecimalDigits": 2,
        "PercentDecimalSeparator": ".",
        "PercentGroupSeparator": ",",
        "PercentSymbol": "%",
        "PerMilleSymbol": "‰",
        "NativeDigits": ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
        "DigitSubstitution": 1
      },
      "dateTimeFormat": {
        "AMDesignator": "上午",
        "Calendar": {
          "MinSupportedDateTime": "\/Date(-62135596800000)\/",
          "MaxSupportedDateTime": "\/Date(253402300799999)\/",
          "AlgorithmType": 1,
          "CalendarType": 1,
          "Eras": [1],
          "TwoDigitYearMax": 2029,
          "IsReadOnly": true
        },
        "DateSeparator": "/",
        "FirstDayOfWeek": 0,
        "CalendarWeekRule": 0,
        "FullDateTimePattern": "yyyy\u0027年\u0027M\u0027月\u0027d\u0027日\u0027 tt h:mm:ss",
        "LongDatePattern": "yyyy\u0027年\u0027M\u0027月\u0027d\u0027日\u0027",
        "LongTimePattern": "tt h:mm:ss",
        "MonthDayPattern": "M月d日",
        "PMDesignator": "下午",
        "RFC1123Pattern": "ddd, dd MMM yyyy HH\u0027:\u0027mm\u0027:\u0027ss \u0027GMT\u0027",
        "ShortDatePattern": "d/M/yyyy",
        "ShortTimePattern": "tt h:mm",
        "SortableDateTimePattern": "yyyy\u0027-\u0027MM\u0027-\u0027dd\u0027T\u0027HH\u0027:\u0027mm\u0027:\u0027ss",
        "TimeSeparator": ":",
        "UniversalSortableDateTimePattern": "yyyy\u0027-\u0027MM\u0027-\u0027dd HH\u0027:\u0027mm\u0027:\u0027ss\u0027Z\u0027",
        "YearMonthPattern": "yyyy\u0027年\u0027M\u0027月\u0027",
        "AbbreviatedDayNames": ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
        "ShortestDayNames": ["日", "一", "二", "三", "四", "五", "六"],
        "DayNames": ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
        "AbbreviatedMonthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月", ""],
        "MonthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月", ""],
        "IsReadOnly": true,
        "NativeCalendarName": "西历",
        "AbbreviatedMonthGenitiveNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月", ""],
        "MonthGenitiveNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月", ""]
      },
      "eras": [1, "公元", null, 0]
    }; //]]>
  </script>
  <script src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/MicrosoftAjax/MicrosoftAjax.js" type="text/javascript"></script>
  <script src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/MicrosoftAjax/MicrosoftAjaxWebForms.js" type="text/javascript"></script>
  <script src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/MicrosoftAjax/start.js" type="text/javascript"></script>
  <script src="/Panopto/ScriptResource.axd?d=jX53go6YI1VpcRfxcX57lK3N7DvG6q8WtozQ34oYVm9fKLUi01ucm7xc826wXqX6B04xKD-ciiVJZ4oP739fteAeRyaiPQx8CB3eS2xUHFI9CjXT1emKzA10o5Ng4qughfdoheAGAzX9_qNzjR_92TFLRF5Xv5IfTAn0g5MyiMA1&amp;t=fffffffffe916c04"
    type="text/javascript"></script>
  <script src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/Panopto/Data.js" type="text/javascript"></script>
  <script src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/Panopto/Events.js" type="text/javascript"></script>
  <script src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/Panopto/Util.js" type="text/javascript"></script>
  <script src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/Panopto/RenderBranding.js" type="text/javascript"></script>
  <script src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/Panopto/Application.js" type="text/javascript"></script>
  <script src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/MicrosoftAjax/extended/ExtendedControls.js" type="text/javascript"></script>
  <div class="aspNetHidden">
    <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="D77E32DE">
    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION"
      value="/wEdAAm6VHsyZi239vR6I/UkVNeU6NcOqBVf9h86JOOauF9Ei6/n6RfadRjx4dgq5eWj6G7yevHnYGGAZlfT9/MxgJNUvp580jUkRTbt+a7NMDIpBmeXzsG14m5oxv7fiA1+wd53xuVLmS8HOCToCglk7kRSzb8YGyRbZKapGF0Zv3R8T5tdCmVm0+4Jm3aJEFU2OuDA22bheorBk8Tv8Ws0uahlebRylXBjrIj6keWNmF++Jg==">
  </div>
  <script type="text/javascript" src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/jQuery/jquery-ui.min.js"></script>
  <script type="text/javascript" src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/jQuery/datepicker-localization.min.js"></script>
  <script type="text/javascript" src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/jquery_tag_it/jquery.tag-it.min.js"></script>
  <script type="text/javascript" src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/waveform/waveform.js"></script>
  <script type="text/javascript" src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/tether/tether.min.js"></script>
  <script type="text/javascript" src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/tether-shepherd/shepherd.min.js"></script>
  <script type="text/javascript" src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/Panopto/Bundles/Core.js"></script>
  <script type="text/javascript" src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/Panopto/Bundles/commons.js"></script>
  <script type="text/javascript">
    //<![CDATA[
    Sys.WebForms.PageRequestManager._initialize('ctl00$ScriptManagerControl', 'rootForm', ['tctl00$PageContentPlaceholder$updatePanel', 'PageContentPlaceholder_updatePanel', 'fctl00$PageContentPlaceholder$loginControl$loginUpdatePanel',
      'PageContentPlaceholder_loginControl_loginUpdatePanel', 'fctl00$PageContentPlaceholder$loginControl$dropDownPanel', 'PageContentPlaceholder_loginControl_dropDownPanel'
    ], ['ctl00$ScriptManagerControl', 'ScriptManagerControl', 'ctl00$PageContentPlaceholder$loginControl$providerDropdown', 'providerDropdown'], [], 90, 'ctl00');
    //]]>
  </script>
  <input type="hidden" name="ctl00$ScriptManagerControl" id="ScriptManagerControl">
  <script type="text/javascript">
    //<![CDATA[
    Sys.Application.setServerId("ScriptManagerControl", "ctl00$ScriptManagerControl");
    Sys.Application._enableHistoryInScriptManager();
    //]]>
  </script>
  <iframe id="__historyFrame" src="/Panopto/ScriptResource.axd?d=ICPDhtdJh5PHTmT60AyK2rZ2JeeClILnB5UsSKfWuomvZ09HIpTURik0b1xgE93gOO6rV1B1qieuK_6O0vLxxx6XgBdZ_dxpZ5HkEOchQRA1" style="display:none;">
  </iframe>
  <script type="text/javascript">
    // Render branding synchronously with script load to avoid rendering unbranded assets
    Panopto.Branding.renderBrandingColors(Panopto.branding.accentColor, Panopto.branding.isAccentColorDefault);
    // Enable client-side browser history.
    Sys.Application.set_enableHistory(true);
    // Load all required scripts.
    Sys.require([Sys.components.watermark,
      Sys.components.modalPopup,
      Sys.components.dataView,
      Sys.components.dataContext,
      Sys.scripts.WebServices,
      Sys.scripts.Templates
    ]);
    Sys.onReady(function() {
      // This provides legacy behavior to integrations hosting Panopto within an iframe.
      // These integrations rely on this hack to enable them to use the same URL for hosting content
      // within the external site and loading the content in a new top-level browsing context.
      // We need condition for teamsApp because teams application on mobile devices doesn't use iFrame 
      // as it is case with desktop devices, so we need to prevent cleaning embedded flags.
      if (!PanoptoCore.Browser.inIframe() && !Panopto.teamsApp?.isFromTeams) {
        // Remove the embedded mode classes from the page wrapper element (if any)
        $("#wrapper").removeClass("embedded embedded-nav mini-embedded");
        // Reset our global embed mode flags
        Panopto.isEmbedded = false;
        Panopto.embeddedModeView = Panopto.Data.EmbeddedView.None;
      }
      Panopto.Application.defaultInstance.init();
      Panopto.Branding.createLogo($("#logoContainer.large-logo"), Panopto.branding.largeLogo,
        /*linksEnabled=*/
        true);
      const cookieConsentBanner = Panopto.CookieConsentBanner(document.getElementById("cookieConsentBannerWrapper"), {
        cookieConsentEnabled: Panopto.features.cookieConsentEnabled,
        isAuthenticated: Panopto.user.isAuthenticated,
        cookieConsentExpirationMinutes: 525600,
        cookieConsentDate: Panopto.user.cookieConsentDate,
        darkMode: window.location.pathname.indexOf("Capture.aspx") !== -1,
        isEmbedded: PanoptoCore.Browser.inIframe() || window.location.pathname.indexOf("/Pages/Mobile/") !== -1,
        isLandscape: PanoptoCore.Browser.isLandscape(),
        scaleForViewport: false,
        resources: Panopto.GlobalResources,
        userService: PanoptoTS.API.Rest.ServiceFactory.getUserService(),
        onCookieConsentChange: function(granted) {
          // Initialize GoogleAnalytics when consent is granted
          if (granted) {
            Panopto.GoogleAnalytics.initialize();
          }
          cookieConsentBanner.setProps({
            cookieConsentDate: new Date()
          });
        }
      });
      PanoptoCore.Browser.attachOrientationChangeListener((isLandscape) => {
        cookieConsentBanner.setProps({
          isLandscape: isLandscape
        });
      });
    });
    // Configure the Public API module using the app root
    Panopto.Core.ServiceInterface.baseUrl = '/Panopto';
    Panopto.Core.ServiceInterface.uriScheme = Panopto.uriScheme;
  </script>
  <div id="wrapper" class="no-min-width">
    <div class="shepherd-overlay"></div>
    <div class="shepherd-overlay-transparent"></div>
    <div id="notificationBanner" role="alert" aria-label="Panopto 通知" aria-describedby="notificationMessageText" tabindex="-1" style="display: none">
      <div id="notificationBannerContent">
        <div id="notificationMessage">
          <div id="notificationContainer">
            <div id="notificationIcon"></div>
            <div id="notificationMessageText"></div>
          </div>
        </div>
        <div id="dismissButtonCell">
          <div id="dismissButton" class="material-icons" role="button" aria-label="关闭警告" tabindex="0" style="display: none"> close </div>
        </div>
      </div>
    </div>
    <!-- end header -->
    <script type="text/javascript" src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/Panopto/Login.js"></script>
    <script type="text/javascript">
      $(document).ready(function() {
        // Add the "no-min-width" class to avoid the login page being off center in embedded views.
        $("#wrapper").addClass("no-min-width");
        var bounceUrl = '';
        var embedLoginUrl = '';
        var queryObject = Panopto.Core.StringHelpers.parseQueryString(location.search.slice(1));
        var isFromTeams = 'False' === 'True';
        var isEmailLoginFailed = 'False' === 'True';
        if (isEmailLoginFailed) {
          // Remove the token from the query parameters. This is needed so we don't bounce
          // into a loop when the user tries to sign in again.
          Panopto.Core.UrlHelpers.removeParams();
        }
        if (bounceUrl) {
          var returnUrlEscaped = '';
          if (PanoptoCore.Browser.inIframe()) {
            // No bounce back is possible from iFrames. Go to the iFrame login URL instead.
            bounceUrl = embedLoginUrl;
          }
          if (isFromTeams) {
            // In Teams, bounceUrl is opened in a popover
            var bounceUrlInPopover = Panopto.Core.StringHelpers.setQueryParameters(embedLoginUrl, {
              isFromLoginPopover: true,
              isFromTeams: true
            }, false);
            // If from Teams, utilize its SDK to launch a popover window to allow auth requests
            Panopto.MicrosoftTeams.initialize(function() {
              Panopto.MicrosoftTeams.authentication.authenticate({
                url: bounceUrlInPopover,
                height: 1000,
                width: 800,
                successCallback: function(result) {
                  window.location.href = decodeURIComponent(queryObject.ReturnUrl);
                },
                failureCallback: function(reason) {
                  window.location.href = Panopto.Core.StringHelpers.setQueryParameters(decodeURIComponent(queryObject.ReturnUrl), {
                    preventAutoBounceLogin: true
                  }, false);
                }
              });
            });
          } else {
            window.location.href = bounceUrl;
          }
        } else if (isFromTeams) {
          // To disable the loading animation
          Panopto.MicrosoftTeams.initialize();
          Panopto.MicrosoftTeams.appInitialization.notifySuccess();
        }
        var handleResize = function() {
          // Determine the margin to add to the login controls so that they appear centered vertically with
          // respect to the page but also prevent overflowing into the logo with shorter window heights
          var margin = Math.max(0,
            // 433px is the maximum height of the login control, we need to use that height in all
            // cases so the controls don't shift around during the workflow
            ($(window).height() - 433) / 2 - $("#logoContainer").outerHeight(true));
          $(".login-content").css("margin-top", margin + "px");
        };
        // Center login-control in case if EULA is not displayed
        var isEulaFormDisplayed = $(".eula-content").length > 0;
        if (!isEulaFormDisplayed) {
          $(window).resize(handleResize);
          handleResize();
        }
        if (Panopto.features.enableEmbedApi && PanoptoCore.Browser.inIframe()) {
          Panopto.UI.Login.fireIframeLoginShown();
        }
      });
    </script>
    <div class="login-wrapper ">
      <div id="logoContainer" class="large-logo">
        <div class="customer-logo">
          <div class="main-logo">
            <a id="siteLogo_customerLogoLink" title="所有内容" href="/Panopto/Pages/Sessions/List.aspx" target="_top" aria-label="所有内容" tabindex="0">
                        <img src="/Panopto/ContentCache/637945386827149952/_branding/c27676a4-be4a-412b-a191-aeb000790818/637945386551754408_largelogo.png" alt="" aria-hidden="true">
                    </a>
          </div>
          <div class="cobrand">
            <a id="panoptoLogoLink" class="cobrand-link" href="https://www.panopto.com" target="_blank">
                        <span>由Panopto技术支持</span>
                    </a>
          </div>
        </div>
      </div>
      <div id="PageContentPlaceholder_updatePanel" class="login-content" style="margin-top: 282.5px;">
        <script type="text/javascript" src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/Panopto/Login.js"></script>
        <script type="text/javascript">
          var Panopto = Panopto || {};
          Panopto.Login = Panopto.Login || {};
          Panopto.Login.setUpClientHandlers = function() {
            // Activate LinkButtons with space bar
            $(".login-form .standard-button").not("[href='#']").off("keydown").keydown(function(e) {
              if (e.keyCode === Panopto.Core.Key.Space) {
                // LinkButtons have javascript to execute post-backs in href, so evaluate it to activate
                eval($(this).attr("href"));
              }
            });
            // Focus first input
            $(".login-form").find("input,textarea,.standard-button").filter(":visible:first").focus();
          };
          Panopto.Login.checkStorageAccess = function() {
            // Check for and (if necessary) request access to the cookie storage.
            Panopto.UI.Login.checkStorageAccessAPI();
          };
          Panopto.Login.onAnalyticsEvent = function(action, source) {}
          Panopto.Login.loadEula = function() {
            // Render EULA to approprite div
            PanoptoReactComponents.bootstrapReactComponent(PanoptoReactComponents.Control.Markdown.Markdown)(document.getElementById("eulaText"), {
              contentToParse: ""
            });
            // Set needed EULA class to root of login form
            $(".login-content").addClass("eula-content");
            // Bind change event for "RequireEulaReadConfirmation" checkbox that will enable/disable Accept EULA button
            // and set/remote Accept button title based if checkbox is checked or not
            $('#requireEulaReadConfirmationCheckbox').change(function() {
              var acceptButton = $('#AcceptEulaButton');
              var eulaReadConfirmationCheckboxIsChecked = $(this).is(":checked");
              // If EulaReadConfirmationCheckbox is checked enable Accept button, otherwise disable.
              acceptButton.prop("disabled", !eulaReadConfirmationCheckboxIsChecked);
              // If EulaReadConfirmationCheckbox is checked remove title, otherwise set title
              acceptButton.attr("title", eulaReadConfirmationCheckboxIsChecked ? "" : "请勾选复选框来明确表示您已阅读 EULA。");
            });
            // On window resize login form has logic to move form to page center.
            // We don't need this for EULA, so we will remove added margin-top (style) and window resize event
            $(".login-content").removeAttr("style");
            $(window).off("resize");
          };
          $(document).ready(function() {
            // Set the return url for crosspage postbacks.
            var returnUrl = $get('PageContentPlaceholder_loginControl_returnUrl');
            // Wire up user settings link.
            Panopto.Core.UI.Handlers.button($("#accountLink"), function() {
              Panopto.Application.defaultInstance.updateState({
                modalPage: "UserInfo",
                modalHeader: Panopto.GlobalResources.Account,
                modalParams: Panopto.Core.StringHelpers.serializeObjectToQueryString({
                  publicId: '',
                  isInternal: 'true'
                })
              });
              $("#userMenu").hide();
            });
            if (!returnUrl.value) {
              returnUrl.value = window.location.href;
            }
            $("#PageContentPlaceholder_loginControl_loginErrorMessage a").click(function(e) {
              Panopto.Login.onAnalyticsEvent("login-page-sso-error-click", "signup");
            })
            Panopto.Login.setUpClientHandlers();
          });
          Panopto.Login.routeStandardLoginFromGoogleSSO = function() {
            // Helper function for reseting the redirect URL when a user clicks the standard login button in a google SSO environment
            // This function is only invoked in the UI where Google SSO is shown as a default option
            const internalLoginParam = 'standard'
            const urlParams = Panopto.Core.StringHelpers.parseQueryString(location.search, true, // urlDecode
              true); // useLowerCaseKeys
            if (urlParams.instance === "GoogleSSO") {
              // Google's return url has the return url and panopto protection token inside the 'state' url param
              // We need to extract the return url, but disregard the protection token since we are doing an internal login
              const urlState = urlParams.state;
              const stateQueryParams = urlState.split("&");
              var returnUrl = "";
              for (var i = 0; i < stateQueryParams.length; i++) {
                if (stateQueryParams[i].startsWith("ReturnUrl")) {
                  returnUrl = decodeURIComponent(stateQueryParams[i].split("=")[1]);
                }
              }
              // The URL may be double encoded if it was a token request originally. Check this first
              // then double decode it if necessary.
              if (returnUrl.indexOf("PanoptoToken") >= 0) {
                returnUrl = decodeURIComponent(decodeURIComponent(returnUrl));
              }
              // Split the urlState at "=" since the state query param has "ReturlUrl=..." value
              window.location.href = "?instance=" + internalLoginParam + "&ReturnUrl=" + encodeURIComponent(returnUrl);
            } else {
              window.location.href += ((window.location.href.indexOf("?") == -1) ? "?" : "&") + "instance=" + internalLoginParam;
            }
          }
        </script>
        <div class="login-form">
          <div id="PageContentPlaceholder_loginControl_loginUpdatePanel">
            <input type="hidden" name="ctl00$PageContentPlaceholder$loginControl$forceStateChanged" id="PageContentPlaceholder_loginControl_forceStateChanged">
            <input type="hidden" name="ctl00$PageContentPlaceholder$loginControl$returnUrl" id="PageContentPlaceholder_loginControl_returnUrl"
              value="https://polyu.ap.panopto.com/Panopto/Pages/Auth/Login.aspx?ReturnUrl=https%3A%2F%2Fpolyu.ap.panopto.com%2FPanopto%2FPages%2FHome.aspx">
            <div id="PageContentPlaceholder_loginControl_notLoggedInControls">
              <div id="PageContentPlaceholder_loginControl_loginControls">
                <h1 class="page-only">登录 Panopto</h1>
                <h1 class="dropdown-only with-subtitle">登录</h1>
                <h2 class="dropdown-only">查看更多视频</h2>
                <span id="PageContentPlaceholder_loginControl_loginErrorMessage" class="error"></span>
                <div id="PageContentPlaceholder_loginControl_standardLogin">
                  <div id="PageContentPlaceholder_loginControl_accountControl" class="input-wrapper">
                    <select name="ctl00$PageContentPlaceholder$loginControl$providerDropdown" onchange="javascript:setTimeout('__doPostBack(\'ctl00$PageContentPlaceholder$loginControl$providerDropdown\',\'\')', 0)" id="providerDropdown"
                      aria-label="登录采用">
                      <option value="panoptointernal">Panopto</option>
                      <option selected="selected" value="blackboard">Blackboard</option>
                      <option value="o365">POLYU Portal (For non-LMS, Research and more)</option>
                      <option value="BlackboardUltra">Blackboard Ultra</option>
                    </select>
                  </div>
                  <div id="PageContentPlaceholder_loginControl_dropDownPanel">
                    <div id="PageContentPlaceholder_loginControl_externalLoginControls" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'PageContentPlaceholder_loginControl_externalLoginButton')">
                      <div class="input-wrapper">
                        <a onclick="Panopto.Login.checkStorageAccess();window.location.search += ((window.location.search.indexOf('?') == -1) ? '?' : '&amp;') + 'instance=blackboard';
                                return false;" id="PageContentPlaceholder_loginControl_externalLoginButton" class="standard-button branded-button external-login" href="javascript:__doPostBack('ctl00$PageContentPlaceholder$loginControl$externalLoginButton','')">登录</a>
                      </div>
                    </div>
                  </div>
                </div>
                <div class="cookie-warning"> 我们采用cookie来记录你的特定偏好和测量用户是如何使用我们网站的。如果你继续浏览本网站,表示你同意我们使用cookie。<br><a href="https://support.panopto.com/14/login/cookies" target="_blank">了解更多</a>
                </div>
              </div>
            </div>
            <div id="PageContentPlaceholder_loginControl_emailLoginMessage">
            </div>
          </div>
        </div>
        <div id="iframeBounceMessage" class="centered-login-message" style="display:none;"></div>
      </div>
    </div>
    <div id="loadingMessage" style="display: none">
      <div class="loading-block">
        <div class="branding-color-holders spinner-background"></div>
        <div class="loading-indicator branded-animation"></div>
      </div>
    </div>
    <div id="logoutWarningMessage" class="safety-background" style="display: none;">
      <span id="logoutWarningText"></span>
      <span id="logoutWarningInfo" style="display: none;"></span>
      <a id="logoutWarningLink"></a>
    </div>
  </div>
  <script type="text/javascript" src="//static-assets-cdn.i.ap.panopto.com/Panopto/Cache/14.6.0.00014/Scripts/Panopto/Controls/ModalPopup.js"></script>
  <div class="modal-background" style="display:none;">
    <div tabindex="1"></div>
    <div id="modalWindow" role="dialog" aria-modal="true" style="display:none;">
      <div class="modal-border-left"></div>
      <div class="modal-wrapper">
        <div class="modal-header">
          <div id="modalIcon"></div>
          <div id="modalHeader"></div>
          <a target="_blank" id="modalHelp" style="display: none">了解更多</a>
          <div id="modalSpinner">
            <div class="loading-block">
              <div class="branding-color-holders spinner-background"></div>
              <div class="loading-indicator branded-animation"></div>
            </div>
          </div>
          <div id="closeDiv">
            <a id="closeLink" class="material-icons" href="#" title="关闭" aria-label="关闭">close</a>
          </div>
        </div>
        <div class="modal-view">
          <ul id="modalNavigation" class="sys-template tabs" style="visibility:hidden;" role="navigation">
            <li class="accented-tab"><a href="#">{binding Name, convert=displayModalPageName}</a></li>
          </ul>
          <div class="modal-content">
            <iframe id="modalIframe" name="modalIframe" frameborder="0"></iframe>
            <div id="modalContentPlaceholder"></div>
          </div>
        </div>
      </div>
      <div class="modal-border-right"></div>
    </div>
    <div tabindex="0"></div>
  </div>
  <script type="text/javascript">
    //<![CDATA[
    Panopto.Login && Panopto.Login.setUpClientHandlers(); //]]>
  </script>
</form>

Text Content

close
由Panopto技术支持


登录 PANOPTO


登录


查看更多视频

Panopto Blackboard POLYU Portal (For non-LMS, Research and more) Blackboard
Ultra
登录
我们采用cookie来记录你的特定偏好和测量用户是如何使用我们网站的。如果你继续浏览本网站,表示你同意我们使用cookie。
了解更多





了解更多

close
 * {binding Name, convert=displayModalPageName}