Я пытаюсь настроить свой веб-сайт в новой среде, и у меня проблема с поставщиком членства.
Я могу вызвать 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.
domain
, как указано в комментариях. - person Aristos   schedule 10.09.2014