Я подумываю получить имена пользователей моего сайта, используя это, на мой взгляд (синтаксис Razor):
@MySite.Helpers.Utils.UserName
вот класс утилит:
public class Utils
{
static FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
public static string UserName { get { return id.Ticket.UserData; } }
}
Есть ли потенциальные проблемы с этим кодом?
Причина, по которой я это делаю, заключается в том, что я собираюсь сохранить имя пользователя в поле userdata нового FormsAuthenticationTicket при входе пользователя в систему.
Я обращаюсь с этим так, потому что я использую facebook connect и хочу сохранить там ID в поле имени пользователя в БД и их имена пользователей / полные имена в отдельной таблице.
поэтому моя логика обработки имен пользователей Facebook и зарегистрированных имен пользователей моего сайта должна обрабатываться по-разному. При входе в систему я собираюсь обработать его, а затем установить userdata в качестве фактического имени пользователя.
поэтому по всему сайту я могу просто получить имя зарегистрированного пользователя, используя: @MySite.Helpers.Utils.UserName
это звучит нормально? факт, что его статическая переменная будет проблемой?
или есть лучший способ справиться с этим? переменные сеанса, может быть?
спасибо