как перенаправить гостя на guest.aspx от логина - PullRequest
0 голосов
/ 21 января 2010

У меня есть администратор и гость ...

Когда администратор входит в систему, он должен быть перенаправлен на default.aspx, но если гость входит, он должен быть перенаправлен на страницу guest.aspx ... В настоящее время он перенаправляется на Default.aspx ...

вот мой код

web.config

authentication mode="Forms">
    <forms loginUrl="Login.aspx" protection="All" name="Cookie" timeout="120" path="/" slidingExpiration="true"
       defaultUrl="Default.aspx">
    </forms>
  </authentication>

Код Login.cs

 System.Security.Principal.WindowsIdentity wi = System.Security.Principal.WindowsIdentity.GetCurrent();
                System.Security.Principal.WindowsPrincipal wp = new System.Security.Principal.WindowsPrincipal(wi);


                if (wp.IsInRole("Administrators"))
                {
                    BadCredentials.Visible = false;
                    Session["userName"] = UserName.Text;
                    Session["password"] = Password.Text;
                    Session["domain"] = Domain.Text;


                    string role = "Administrators";

                    // Create the authentication ticket
                    FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1,                          // version
                                                   UserName.Text,           // user name
                                                   DateTime.Now,               // creation
                                                   DateTime.Now.AddMinutes(60),// Expiration
                                                   false,                      // Persistent 
                                                   role);         // User data

                    // Now encrypt the ticket.
                    string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
                    // Create a cookie and add the encrypted ticket to the
                    // cookie as data.
                    HttpCookie authCookie =
                                 new HttpCookie(FormsAuthentication.FormsCookieName,
                                                encryptedTicket);

                    // Add the cookie to the outgoing cookies collection.
                    Response.Cookies.Add(authCookie);

                    // Redirect the user to the originally requested page
                    Response.Redirect(FormsAuthentication.GetRedirectUrl(UserName.Text, false));

                }
                else if (wp.IsInRole("Guests"))
                {
                      BadCredentials.Visible = false;
                Session["userName"] = UserName.Text;
                Session["password"] = Password.Text;
                Session["domain"] = Domain.Text;

                string role = "Guests";

                // Create the authentication ticket
                FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1,                          // version
                                               UserName.Text,           // user name
                                               DateTime.Now,               // creation
                                               DateTime.Now.AddMinutes(60),// Expiration
                                               false,                      // Persistent 
                                               role);         // User data

                // Now encrypt the ticket.
                string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
                // Create a cookie and add the encrypted ticket to the
                // cookie as data.
                HttpCookie authCookie =
                             new HttpCookie(FormsAuthentication.FormsCookieName,
                                            encryptedTicket);

                // Add the cookie to the outgoing cookies collection.
                Response.Cookies.Add(authCookie);

                // Redirect the user to the originally requested page
                Response.Redirect(FormsAuthentication.GetRedirectUrl(UserName.Text, false));

            }

как мне получить другой URL для гостя ....

какие-либо предложения? спасибо ..

1 Ответ

0 голосов
/ 21 января 2010

В вашем гостевом разделе замените:

// Redirect the user to the originally requested page 
Response.Redirect(FormsAuthentication.GetRedirectUrl(UserName.Text, false)); 

С:

// Redirect the user to the originally requested page 
FormsAuthentication.SetAuthCookie(UserName.Text, false)
Response.Redirect("guest.aspx", true); 
...