Я пишу веб-сайт ASP.NET MVC 3. Это мой пользовательский MembershipProvider (реализован только ValidateUser):
public class RFMMembershipProvider : MembershipProvider
{
IUserService userService = new UserService();
public override bool ValidateUser(string username, string password)
{
return password.GetHashCode().ToString() == userService.GetUser(username).Pass;
}
...
}
и мой Roleprovider (реализован только GetRolesForUser)
public class RFMRoleProvider : RoleProvider
{
IUserService userService = new UserService();
public override string[] GetRolesForUser(string username)
{
return new string[] { userService.GetRolesForUser(username).Name };
}
...
}
my web.config part
...
<system.web>
<roleManager enabled="true" defaultProvider="RFMRoleProvider">
<providers>
<clear/>
<add name="RFMRoleProvider" type="RFMSite.WebUI.RFMRoleProvider, RFMSite"/>
</providers>
</roleManager>
<membership defaultProvider="RFMMembershipProvider"
>
<providers>
<clear/>
<add name="RFMMembershipProvider"
type="RFMSite.WebUI.RFMMembershipProvider, RFMSite"
/>
</providers>
</membership>
<authentication mode="Forms" >
<forms loginUrl="~/Account/LogOn" timeout="2880">
</forms>
</authentication>
при действии входа в систему:
...
if (Membership.ValidateUser(username, password))
{
FormsAuthentication.SetAuthCookie(username, true);
return RedirectToAction("Files", "Admin");
}
...
return View();
Итак, вопрос в том, почему, когда я публикую сайт на IIS 7.0 Membership.ValidateUser(username, password)
всегда возвращает ложь? Работает НОРМАЛЬНО на локальном сервере разработки asp.net.
Соединение с MSSQL Server в порядке (я могу получить любые данные и отобразить их при развертывании веб-сайта)? Никаких исключений не происходит, просто всегда возвращается false ...