MVC3: отображение имени пользователя на внешнем интерфейсе, но контроллер должен работать с идентификатором пользователя - PullRequest
1 голос
/ 06 октября 2011

Надеюсь, я не сомневаюсь в своих многочисленных вопросах ...

Я создаю пользователей в базе данных ASPNETDB.MDF с конфигурацией asp.net.

У меня есть клиент MVC, и я хочу, чтобы, когда клиент был создан, отредактирован или удален, он должен отображать user_name и last_user_name пользователя, выполнившего действие. Эти два свойства заложены в клиентской модели. Я хочу, чтобы мой контроллер работал только с идентификатором (PK) пользователей, а не с их именами. Я знаю только, как заставить контроллер работать с именами пользователей. Как я могу гарантировать, что любая функция выполняется с идентификатором, но на дисплее отображается имя пользователя? Вот мой метод создания в моем клиентском контроллере

    [Authorize]
    public ActionResult Create()
    {
        var model = new title
        {

            create_dt = DateTime.Now,
            last_maint_dt = DateTime.Now,
            row_version = 1,
            status = "ACTIVE",
            user_id = System.Web.HttpContext.Current.User.Identity.Name,
            last_user_id = System.Web.HttpContext.Current.User.Identity.Name

        };

        return View(model);
    }

1 Ответ

0 голосов
/ 06 октября 2011

Если вы используете поставщика членства ASP.NET по умолчанию, вы можете найти GUID пользователя для учетной записи, открыв System.Web.Security.Membership.Затем вы можете использовать метод GetUser () и передать ему имя пользователя в качестве аргумента.

//Get Current User ID
var user = System.Web.Security.Membership.GetUser(User.Identity.Name);

if (user != null)
{
    string id = user.ProviderUserKey.ToString();
}

А если у вас есть GUID и вы хотите имя пользователя

var user = System.Web.Security.Membership.GetUser(id);
if (user != null)
{
    string username = user.UserName;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...