jquery - 单点登录 ASP.NET MVC

标签 jquery asp.net-mvc xmlhttprequest single-sign-on

我们正在尝试使用 ASP.NET MVC 构建跨域单点登录解决方案。

有可用的现有解决方案或教程吗?

最佳答案

如果您的 Web 应用程序位于同一服务器同一域上,那么您所需要做的就是确保 Web 配置中的验证 key 和加密 key 相同(机器 key )。

在您的示例中,您需要将身份验证票证附加到查询字符串,以将其传输回其他域,例如:

public void Login(string userName, string password)
{
    if(AuthenticateUser(userName,password))
    {
        Response.Redirect(String.format("{0}?{1}={2}"), 
            Request.QueryString["ReturnUrl"],
            FormsAuthentication.FormsCookieName,
            FormsAuthentication.GetAuthCookie(userName, false).Value));
    }
}

在本地应用程序上,您必须启用无 cookie 表单例份验证,并通过设置 enableCrossAppRedirect 允许经过身份验证的用户来自外部应用程序。

<authentication mode="Forms">
    <forms enableCrossAppRedirect="true" cookieless="useUri" />
</authentication>
<小时/>

注释:

  1. 另请参见 FormsAuthentication.RedirectFromLoginPage -http://msdn.microsoft.com/en-us/library/ka5ffkce.aspx .

  2. 就我而言,ReturnUrl 丢失了 url 的域部分:(

关于jquery - 单点登录 ASP.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2797412/

相关文章:

asp.net-mvc - 将枚举参数从 Ajax Jquery 传递到 MVC Web api

html - 中心导航栏 (ASP.NET MVC)

迄今为止的 Javascript 时间戳

javascript - 一次捕获 2 个不同的 xmlhttp.responseText

asp.net-mvc - Breeze Durandal 从 View 中访问 shell viewmodel 变量

javascript - 向 XMLHttpRequest.onload 传递额外的参数

javascript - Laravel 尝试从数据库获取导航栏列表

javascript - 如何防止弹出窗口时出现滚动条?

javascript - 在respond_to或redirect_to之后缺少模板

asp.net-mvc - 如何将 FileContentResult 写入磁盘?