如何像Sharepoint那样在asp.net中创建登录体验?

如何像Sharepoint那样在asp.net中创建登录体验?,asp.net,sharepoint,Asp.net,Sharepoint,我们使用Sharepoint 2007作为内部门户。我目前正在开发一个自定义应用程序(asp.net MVC2),我被要求让登录过程模拟Sharepoint,用户最初使用SSO登录,但随后可以选择注销并提供不同的凭据 有关于如何做到这一点的博客/指南吗 更新: 多亏了reflector,我才找到了这样做的方法,但它并没有完全起作用 首先,我正在本地Windows7机器上运行的IIS上测试这个 我已设置“注销”操作以执行以下操作: var current = System.

我们使用Sharepoint 2007作为内部门户。我目前正在开发一个自定义应用程序(asp.net MVC2),我被要求让登录过程模拟Sharepoint,用户最初使用SSO登录,但随后可以选择注销并提供不同的凭据

有关于如何做到这一点的博客/指南吗

更新:

多亏了reflector,我才找到了这样做的方法,但它并没有完全起作用

首先,我正在本地Windows7机器上运行的IIS上测试这个

我已设置“注销”操作以执行以下操作:

            var current = System.Web.HttpContext.Current;
            var response = current.Response;
            object obj2 = current.Items["ResponseEnded"];
            if ((obj2 == null) || !((bool)obj2))
            {
                current.Items["ResponseEnded"] = true;
                response.StatusCode = 401;
                response.Clear();
                    response.Write("401 UNAUTHORIZED");
                response.End();
            }
这部分起作用。当我单击“注销”时,系统会提示我输入凭据。奇怪的是,在调试时,我可以看到该方法被调用了两次(这是一个MVC操作)

但是,即使提供了有效的凭据,我仍然无法重新登录。第三次尝试后,我得到了401页


我唯一的想法是,它试图使用Kerberos进行身份验证,因为我没有在这台机器上安装Kerberos,所以失败了。但是,当我第一次从IE访问站点时,它只会在SSO上传递IE凭据,而且一切正常,所以我不确定为什么第二次身份验证失败。

asp.net会员资格提供商是一个很好的选择。根据你的问题,有很多认证方法的选择,尽管我认为.net成员资格提供商是你最好的选择。如果您只是使用windows身份验证,甚至sharepoint也有其缺陷,因为IE将尝试将登录更改回windows帐户用户


Sharepoint似乎没有使用自定义成员资格提供程序。它似乎只是使用401响应来重新验证用户。但是,当我尝试这样做时,我没有运气让用户正确地进行身份验证。