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