我有一个ASP.NET网站,登录页面在成功验证的情况下重定向到默认页面。我在另一个域下有另一个ASP.NET站点,我需要放置一个登录表单,它将已经通过身份验证的用户重定向到第一个网站的默认页面。这样做的最好方法是什么?ASP.NET网站中的跨域登录
任何帮助将不胜感激..
我有一个ASP.NET网站,登录页面在成功验证的情况下重定向到默认页面。我在另一个域下有另一个ASP.NET站点,我需要放置一个登录表单,它将已经通过身份验证的用户重定向到第一个网站的默认页面。这样做的最好方法是什么?ASP.NET网站中的跨域登录
任何帮助将不胜感激..
谢谢您的答复。我认为我的问题不够确切。
我解决了我的问题,使用iframe与第一个应用程序的登录页面作为源。
<iframe id = "iframe1" name ="loginFrame" src="http://domain2/Login.aspx?for_web=true" onload="iframeLoaded" ></iframe>
要重定向到所述第一站点的登录的默认页面,添加的OnClientClick =“formWeb.target =‘_父’;”到登录按钮。所以当点击登录按钮时,如果认证成功,默认页面(在另一个域下)将在同一个窗口中打开(不是一帧)
<form id="formWeb" runat="server">
<asp:Button ID="btnLogin" runat="server" Text="Login" OnClick="btnLogin_Click" OnClientClick="formWeb.target ='_parent';" />
</form>
你已经回答了你自己的问题,但它的值得一提的JSON网络令牌,这些是轻量级的,并且在这个用例中是理想的 - http://jwt.io – 2014-10-21 15:06:29
你是什么之后是单点登录。在succsesful登录重定向的机制是在web.config
这里http://msdn.microsoft.com/en-us/library/eb0zx8fc.aspx
<configuration>
<system.web>
<authentication mode="Forms" >
<!-- The name, protection, and path attributes must match
exactly in each Web.config file. -->
<forms loginUrl="login.aspx"
name=".ASPXFORMSAUTH"
protection="All"
path="/"
domain="contoso.com"
timeout="30" />
</authentication>
<!-- Validation and decryption keys must exactly match and cannot
be set to "AutoGenerate". The validation and decryption
algorithms must also be the same. -->
<machineKey
validationKey="[your key here]"
decryptionKey="[your key here]"
validation="SHA1" />
不明确?真? – ChrisBint 2014-10-17 14:04:59
基本问题是您没有其他域的身份验证令牌。但是,应该可以对第一个站点执行AJAX请求,并且无论用户是否已登录(如果需要,包括重定向URL),都会返回该请求。您只需使用HTTP标头来告诉浏览器这是一个合法的行为(有效的接受来源)。 – Luaan 2014-10-17 14:26:09
如果您有权访问这两个网站上的代码,则可以将标记添加到这两个网站都可以理解的查询字符串中,并将其转换为用于自动验证用户身份的信息。另一种选择是使用适当的单点登录,正如Joe建议的那样。 – 2014-10-17 14:46:57