Обратная передача и перезапись URL - PullRequest
1 голос
/ 01 января 2012

У меня есть интересная проблема, когда я врезался в кирпичную стену.У меня проблема со страницей входа, которая реализует проверку подлинности на основе форм и использует Intellegencia.Rewriter.Аутентификация отлично работает на локальном хосте для всех браузеров, но на сервере кажется, что характер обратной страницы теряется в IE9, но отлично работает в Chrome.Код, который я имею на странице входа в систему:

bool isAuthenticated = Membership.ValidateUser(username, password);
        string returnUrl = Server.HtmlDecode(Request["ReturnUrl"]);
        lblLoggedIn.Text = Page.IsPostBack.ToString();
        if (isAuthenticated && 
                            Thread.CurrentPrincipal.Identity.Name == "")
            {
                HttpContext.Current.User = AuthenticateUserIfValid(username);
                Thread.CurrentPrincipal = HttpContext.Current.User;
            }

Где функция AuthenticateUserIfValid:

public Principal.GenericPrincipal AuthenticateUserIfValid(string username)
{
    MembershipUser mpc = Membership.FindUsersByName(username)[username];
    string[] roles = Roles.GetRolesForUser(mpc.UserName);
    string strRoles = "";

    foreach (string role in roles) 
                   strRoles += strRoles != "" ? "," + role : role;

    FormsAuthenticationTicket fat = 
                    new FormsAuthenticationTicket(1, mpc.UserName.ToString(),
                 DateTime.Now, 
                           DateTime.Now.AddMinutes(30), 
                           true, 
                           strRoles, 
                           FormsAuthentication.FormsCookiePath);

    Response.Cookies.Add(
                        new HttpCookie(FormsAuthentication.FormsCookieName,
                   FormsAuthentication.Encrypt(fat)));

    Response.Cookies.Add(new HttpCookie("UserRoles", strRoles));

    Principal.GenericPrincipal myPrincipal;
    Principal.GenericIdentity myIdentity = 
                     new Principal.GenericIdentity(mpc.UserName);
    myPrincipal = new Principal.GenericPrincipal(myIdentity, roles);
    return myPrincipal;

}

Любые мысли или решения будут наиболее цениться.С уважением,

MD

...