使用SessionSecurityToken在Sharepoint 2010中持久登录?

时间:2012-10-24 11:57:34

标签: sharepoint sharepoint-2010 identity claims-based-identity

我有一个在Sharepoint上运行的公共网站。现在,当用户登录时,我们希望他们能够选择“记住登录”,以便他们有持久登录。

据我所知,Sharepoint支持这一点。你唯一要做的就是运行:

spFederationAuthenticationModule.SetPrincipalAndWriteSessionToken(someSessionSecurityToken, true);

现在,我不知道如何获得过载所需的SessionSecurityToken。目前我们使用的是没有真实的那个。

我们的代码:

MembershipProvider membershipProvider = Membership.Providers["CustomProvider"];

            VerifyCredentialsResult verifyCredentialsDto = null;

            using (WindowsIdentity.Impersonate(IntPtr.Zero))
            {
                var customerService = Kernel.Resolve<ICustomerServiceAgent>();
                verifyCredentialsDto = customerService.VerifyCredentials(userName, passwordOrSsoToken);
                Kernel.ReleaseComponent(customerService);
            }

            if (!verifyCredentialsDto.Succes)
                return false;

            SecurityToken securityToken =
                SPSecurityContext.SecurityTokenForFormsAuthentication(new Uri(SPContext.Current.Web.Url),
                                                                      "CustomProvider",
                                                                      "CustomRoleProvider",
                                                                      verifyCredentialsDto.CustomerId,
                                                                      passwordOrSsoToken);
            if (securityToken != null)
            {
                SPFederationAuthenticationModule spFederationAuthenticationModule =
                    SPFederationAuthenticationModule.Current;

                spFederationAuthenticationModule.SetPrincipalAndWriteSessionToken(securityToken);
                return true;
            }
            return false;

实现持久性true / false的参数很容易,但是我们如何在登录时更改代码以支持持久性cookie?

0 个答案:

没有答案