服务器重定向到我们的网页后获取CAS密钥

时间:2014-04-10 06:25:28

标签: c# unity3d cas

问题是,一旦我登录到存在数据的外部服务器并获取我正在使用GET / POST请求的数据,但是团结会因为我们的游戏而导致游戏的Webplayer版本出现跨域策略错误托管在不同的域上,我们正在发布Post / get请求从外部服务器获取数据。 所以关键是,一旦外部服务器中的登录完成,它就会将我重定向到我的域页面,最后附上一张CAS票据,如下所示:

http://mydomain.com/webbuild.html?ticket=ST-260-NigEPjMAlD7GoeRsxAIO-xxx-cas

该服务器页面中包含以下代码:

<div class="content">

    <div class="content-center float-left">
        <form id="fm1" action="/cas/login;jsessionid=qjuydeza6epg18b644x1e25ly?service=https%3A%2F%2Fsb.xxx.com%2Fweb%2Fplayer_login%3FapiKey%3D285dcdb0-9e8b-4e17-8a2f-f72551a16f3d%26successUrl%3Dhttp%253A%252F%252Fmydomain.com%252Fwebbuild.html" method="post">

            <div id="error-message" class="error display-none">

            </div>




            <h2>LOG IN</h2>
            <div class="row">

        <input id="username" name="username" class="required display-block" tabindex="1" placeholder="Email address" type="email" accesskey="u" value="" size="25" autocomplete="false"/>

            </div>
            <div class="row">


        <input id="password" name="password" class="required display-block" tabindex="2" placeholder="Password" accesskey="p" type="password" value="" size="25" autocomplete="off"/>
            </div>
            <div class="row buttons">
        <input type="hidden" name="lt" value="LT-1182-FT6sa9JS2ASrsjEpiEqV0eJ3Pr3fBI" />
        <input type="hidden" name="execution" value="e1s1" />
        <input type="hidden" name="_eventId" value="submit" />

                <input class="submit-button" name="submit" accesskey="l" value="Log In" tabindex="4" type="submit" />
            </div>
 <div class="row links">



                <a id="forgot_password_link" href="https://sb.xxx.com/web/users/forgotten_passwords/new" class="portal-link display-block">Forgot your password?</a>

                    <a id="create_account_link" href="https://sb.xxx.com/web/users/new" class="portal-link display-block">Join bspot!</a>

            </div>
        </form>
    </div>
    <div class="content-right content-border float-left">&nbsp;</div>
</div>




        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js"></script>
        <script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
        <script type="text/javascript" src="/cas/js/cas.js"></script>
        <script type="text/javascript" src="/cas/js/ga.js"></script>
        <script type="text/javascript" src="/cas/js/urchin.js"></script>
        <script type="text/javascript" src="/cas/js/call_urchin.js"></script>


<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"applicationID":"2220950","applicationTime":36,"beacon":"beacon-2.newrelic.com","queueTime":0,"licenseKey":"099091ce43","transactionName":"blBbNkoFXBIDVRJdXFcaczFoS2UkIBsvenUWQ1AHT0tYEhIZAlFVWEBVFmdLRwhNVQdHf1ZSUAxuDVcWTFwVRA==","agent":"js-agent.newrelic.com\/nr-378.min.js","errorBeacon":"jserror.newrelic.com"}</script></body>
</html>

有没有办法从服务器读取CAS密钥?要么通过构建的webplayer版本(在他们无法访问的服务器中需要crossdomain.xml),要么从本机应用程序中说(pc,android,ios)构建。如果有一种方法,我应该使用它来重新定向该CAS票据。

我的域名页面中是否必须有一个html代码才能读取CAS票证?

谢谢。

1 个答案:

答案 0 :(得分:0)

我很难准确理解你在做什么,但这里通常是如何与CAS进行互动:

  1. 用户点击应用程序网页。
  2. 应用程序将用户重定向到CAS。
  3. CAS,使用标准Cookie和会话,确定用户是否已登录。
  4. 如果用户未登录,CAS会显示一个登录表单,供用户提供登录凭据。如果用户已登录,CAS将跳至步骤#7。
  5. CAS然后与身份验证数据进行交互,以验证提供的凭据是否有效。
  6. 如果是,则CAS登录用户。
  7. 然后CAS将重定向回应用程序,提供一张票。
  8. 应用程序直接调用CAS以验证提供的票证。
  9. 如果故障单有效,则CAS返回用户信息作为对请求的响应。
  10. 然后,应用程序为用户创建经过身份验证的会话,可能会根据CAS提供的信息查找用户信息,并在适当的位置重定向。
  11. 因此,您的应用程序服务器应该能够转向并向CAS服务器发出请求,使用该票证获取用户信息。

    由于这一切都是通过重定向或服务器发起的请求发生的,因此不应该存在不同的域名。

    希望这有帮助。