SetAuthCookie не устанавливает cookie на нашем тестовом сервере

Я пытаюсь настроить свой веб-сайт в новой среде, и у меня проблема с поставщиком членства.

Я могу вызвать Membership.ValidateUser, который возвращает истину и ложь, как и должно быть. Это идеально.

Однако в моей новой среде cookie никогда не устанавливается. Я вижу на localhost и на нашем производственном сервере, что он устанавливает файл cookie с именем CommunityServer, но не в нашей новой среде.

Код Web.config:

<authentication mode="Forms">
      <!-- development -->
      <forms name=".CommunityServer" protection="All" timeout="60000" loginUrl="~/user/login" slidingExpiration="true"/>
      <!-- deployment -->
      <!--<forms name=".CommunityServer" domain="domain.com" protection="All" timeout="60000" loginUrl="~/user1.aspx" slidingExpiration="true" />-->
    </authentication>
    <authorization>
      <allow users="?"/>
    </authorization>

Код входа:

if (String.IsNullOrEmpty(UsernameLogin)) {
                ModelState.AddModelError("UsernameLogin", Strings.Error_NoLoginUsernameEntered);
            }
            if (String.IsNullOrEmpty(PasswordLogin)) {
                ModelState.AddModelError("PasswordLogin", Strings.Error_NoLoginPasswordEntered);
            }
            if (!Membership.ValidateUser(UsernameLogin, PasswordLogin)) {
                ModelState.AddModelError("UsernameLogin", Strings.Error_LoginFailed);
            }


            if (!ModelState.IsValid) {
                return View(new UserLoginModel() { Title = String.Format(Strings.Site_Title, Strings.UserLogin_Title) });
            }

            FormsAuthentication.SetAuthCookie(UsernameLogin, true);

            // we know this code is run and I am being redirected to the return url
            if (!String.IsNullOrEmpty(ReturnUrl)) {
                return Redirect(ReturnUrl);
            }

Есть идеи подсказок о том, почему наш файл cookie никогда не устанавливается? Это сервер IIS 8.


person Lars Holdgaard    schedule 10.09.2014    source источник
comment
Попробуйте установить правильный параметр domain, как указано в комментариях.   -  person Aristos    schedule 10.09.2014


Ответы (1)


Добавьте domain="domain.com" к параметру аутентификации, чтобы указать, что cookie будет действителен для всего домена и для правильного домена, иначе существует вероятность того, что его нельзя установить.

<authentication mode="Forms">
      <!-- development -->
      <forms name=".CommunityServer" domain="domain.com" protection="All" timeout="60000" loginUrl="~/user/login" slidingExpiration="true"/>
person Aristos    schedule 10.09.2014