1

我目前有一个使用表单身份验证的 MVC 网站。

在这个网站中,我可以通过简单地在 aspnet_Membership 表中拥有一个与用户 ID 相对应的 GUID 来自动登录用户。我所做的只是查询表,然后使用他们的用户名我只需让表单身份验证设置身份验证 cookie。

我目前使用:

FormsAuthentication.RedirectFromLoginPage(username, false)

但也可以选择使用:

FormsAuthentication.SetAuthCookie(username, false, "/")

现在,我需要在 SharePoint 上做类似的事情。SP 确实有权访问我的会员表。

但是,似乎 SP 使用 SecurityTokens 进行验证:

        SecurityToken token = SPSecurityContext.SecurityTokenForFormsAuthentication(new Uri(SPContext.Current.Web.Url), formsClaimsAuthenticationProvider.MembershipProvider, formsClaimsAuthenticationProvider.RoleProvider, strUsername, strPassword);   

        if (null != token)   
        {   
            EstablishSessionWithToken(token);   
            Response.Redirect(strSource);
        }

有没有办法通过简单地提供用户名而不是密码来获取这个令牌?

4

1 回答 1

1

不完全确定,但您可以在使用 FBA(基于表单的身份验证)时创建自己的登录页面。在该自定义登录页面中,您可以执行任何您想要对用户进行身份验证的操作。

当然,您必须首先为 FBA 配置 SharePoint,这是一个相当“复杂”的过程。

如果这还不够,并且 SQLMembershipProvider 不是您想要的,您甚至可以编写自己的成员资格提供程序/角色提供程序,它完全符合您的要求:使用 GUID 等。

于 2013-03-08T07:36:55.783 回答