2

Sharepoint で実行される公開 Web サイトがあります。ユーザーがログインするときに、「ログインを記憶する」を選択できるようにして、永続的にログインできるようにします。

私が理解している限り、Sharepoint はこれをサポートしています。あなたがしなければならない唯一のことは、実行することです:

spFederationAuthenticationModule.SetPrincipalAndWriteSessionToken(someSessionSecurityToken, true);

今、オーバーロードが必要とする SessionSecurityToken を取得する方法がわかりません。現在、true のないものを使用しています。

私たちのコード:

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 をサポートするようにコードを変更するにはどうすればよいでしょうか?

4

0 に答える 0