我目前有一个使用表单身份验证的MVC网站。
在这个网站上,我可以通过简单地在aspnet_Membership表中拥有与其UserId相对应的GUID来自动登录用户。我所做的只是查询表,然后使用他们的用户名我只需要表单身份验证设置auth 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);
}
有没有办法通过简单地提供没有密码的用户名来获取此令牌?
答案 0 :(得分:1)
不完全确定,但是当您使用FBA(基于表单的身份验证)时,您可以创建自己的登录页面。在该自定义登录页面中,您可以执行任何要对用户进行身份验证的操作。
当然,您必须configure SharePoint first for FBA处理quite a "complicated"。
如果这还不够,并且SQLMembershipProvider不是您想要的,您甚至可以编写自己的成员资格提供者/角色提供者,这完全符合您的要求:使用GUID等。