asp.net может войти только в Firefox - PullRequest
0 голосов
/ 03 августа 2011

на моем сайте asp.net я могу войти только в Firefox, но не в Chrome, Internet Explorer или Safari.

вот мой код:

    string userName = LoginUserName.Text;
    string password = LoginPassword.Text;

        if (Page.IsValid)
    {
        if (Membership.ValidateUser(userName, password))
        {
            if (RemeberMe.Checked == true)
            {
                Response.Redirect("~/Home.aspx");
            }
        }
    }

вот таблица входа в систему:

        <table>
        <tr>
            <td>
                <asp:Label Text="Email:" AssociatedControlID="LoginUserName" runat="server" 
                    id="LoginUserNamelabel" CssClass="label"></asp:Label>
            </td>
        </tr>
        <tr>
            <td>
                <asp:TextBox ID="LoginUserName" runat="server" Width="250px" CssClass="textbox"/>
                <asp:RequiredFieldValidator id="LoginEmailRequired" runat="server" ControlToValidate="LoginUserName"
                    ErrorMessage="Email is required" ToolTip="Email is required"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td>
                <asp:Label Text="Password:" AssociatedControlID="LoginPassword" runat="server" 
                    ID="LoginPasswordlabel" CssClass="label"></asp:Label>
            </td>
        </tr>
        <tr>
            <td>
                <asp:TextBox ID="LoginPassword" runat="server" TextMode="Password" Width="250px" CssClass="textbox" />
                <asp:RequiredFieldValidator ID="PassRequired" runat="server" ControlToValidate="LoginPassword"
                    ErrorMessage="Password is Required" ToolTip="Password is Required"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td>
                <asp:CheckBox ID="RemeberMe" runat="server" Text="Remember me" CssClass="RemeberMe" />
            </td>
        </tr>
        <tr>
            <td><br />
                <asp:Button ID="LoginButton" runat="server" Text="Login" OnClick="autoLogin" CssClass="Button" />
            </td>
        </tr>
         <tr>
            <td><br />
                <asp:Label ID="FailureText" runat="server" EnableViewState="false" Visible="false" CssClass="Lfaluire">
                Wrong Email or Password</asp:Label>
            </td>
        </tr>
    </table>

с использованием AspNetSqlMembershipProvider.

я использую asp.net 4.0, в чем проблема спасибо

Ответы [ 3 ]

1 голос
/ 03 августа 2011

Если вы нажмете http://localhost, то большинство браузеров не сохранят файл cookie, созданный вашим провайдером.

Если это так, обратитесь к нему по имени, в котором есть точка. Увидеть: Файлы cookie на локальном хосте с явным доменом

1 голос
/ 03 августа 2011

Вы всегда проверяете имя пользователя и пароль, но затем фактически перенаправляете, только если пользователь установил флажок «Запомнить меня» - это выглядит неправильно. Может ли быть совпадение, что вы отметили галочкой в ​​одних тестовых сессиях, но не в других? ;)

Кроме того, вы на самом деле не сохраняете тот факт, что пользователь вошел в систему где-либо, поэтому не возникнут ли у вас проблемы позже, когда User.Identity.IsAuthenticated все еще имеет значение false?

Вы должны использовать что-то вроде Метод FormsAuthentication.RedirectFromLoginPage независимо от того, установлен флажок или нет ...

Если вы хотите выполнить перенаправление самостоятельно, вы должны использовать FormsAuthentication.SetAuthCookie , а затем выполнять перенаправление.

РЕДАКТИРОВАТЬ : как-то так

string userName = LoginUserName.Text;
string password = LoginPassword.Text;

if (Page.IsValid)
{
    if (Membership.ValidateUser(userName, password))
    {
        if (RemeberMe.Checked)
        {
            // Set your own cookie here or something that you will later check for in Page_Load etc
        }

        // Need to tell ASP.NET authentication was successful
        System.Web.Security.FormsAuthentication.SetAuthCookie(userName, True)
        Response.Redirect("~/Home.aspx");
    }
}
0 голосов
/ 03 августа 2011

Включены ли файлы cookie во всех этих браузерах? Самая распространенная причина того, что входящие в систему компоненты ASP.NET «не работают», заключается в том, что по умолчанию у них нет запасного варианта, когда куки отключены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...