Я недавно начал работать над сайтом, который ранее был кем-то разработан.Сайт работает на asp.net, и хотя я довольно хорошо разбираюсь в c #, я мало что знаю о том, как работает asp.net.
Моя цель - сделать так, чтобы администратор мог редактироватьданные пользователя с использованием тех же инструментов и страниц, что и при редактировании их данных.Это будет выглядеть так:
Membership.GetUser() // returns currently logged in user
возвращает обычного пользователя, которого администратор пытается редактировать, вместо того, чтобы возвращать самого администратора.Если это возможно, мне будет очень легко добавить функциональность администратора на сайт.
Если это невозможно, мне придется переписать различные функции на моем сайте, чтобы они выглядели так:
MembershipUser user;
if (Roles.isUserInRole("admin")) {
user = Utility.GetTheUserTheAdminIsEditing();
}
else {
user = Membership.GetUser();
}
Если я должен сделать это следующим образом, как мне реализовать Utility.GetTheUserTheAdminIsEditing()
?
На данный момент есть функция входа в систему, подобная этой:
private static bool _DoLogin(String user, String pass)
{
bool isAuthenticated = Membership.ValidateUser(user, pass.Trim());
if (isAuthenticated == true)
{
// Create the authentication ticket
FormsAuthenticationTicket authTicket = new
FormsAuthenticationTicket(1, // version
user, // user name
DateTime.Now, // creation
DateTime.Now.AddMinutes(60),// Expiration
false, // Persistent
""); // 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.
HttpContext.Current.Response.Cookies.Add(authCookie);
FormsIdentity id = new FormsIdentity(authTicket);
// This principal will flow throughout the request.
System.Security.Principal.GenericPrincipal principal = new System.Security.Principal.GenericPrincipal(id, Roles.GetRolesForUser(user));
// Attach the new principal object to the current HttpContext object
HttpContext.Current.User = principal;
return true;
}
else
return false;
}
Как мне это реализовать?