-1

я занимаюсь разработкой в ​​Asp.Net MVC 4, у меня есть таблица UserProfile со следующими полями:Как сохранить UserName от текущего пользователя в другой таблице?

 public class UserProfile 
     { 
      [Key] 
      [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
      public int UserId { get; set; } 
      public string UserName { get; set; } 
      public string UserType { get; set; } //flag de tipo usuário musico ou ouvinte 
     } 

Мое приложение является простым, только для загрузки музыки в базу данных, каждый пользователь может только загрузить музыку. В музыкальном поле у ​​меня есть эти поля:

public class Musica 
{ 
    public int MusicaId { get; set; } 
    public int GeneroId { get; set; } //GenreID 
    public int UserId { get; set; } //Needs to take the username from current user logged in app 
    public string Nome { get; set; } 
    public string NomeArtista { get; set; } 
    public Genero genero { get; set; } 
    public decimal Preco { get; set; } 
} 

Это моя таблица отношения в SQL:

CREATE TABLE [dbo].[Musicas] (
    [MusicaId] INT   IDENTITY (1, 1) NOT NULL, 
    [GeneroId] INT    NOT NULL, 
    [UserId] INT    NOT NULL, 
    [Nome]  NVARCHAR (MAX) NOT NULL, 
    [Preco]  MONEY   NULL, 
    [NomeArtista] NVARCHAR(MAX) NOT NULL, 
    CONSTRAINT [PK_dbo.Musicas] PRIMARY KEY CLUSTERED ([MusicaId] ASC), 
    CONSTRAINT [FK_Musicas_ToTable] FOREIGN KEY ([UserId]) REFERENCES [UserProfile]([UserId]) 

Когда пользователь, будет создавать свою музыку на взгляд, i want to take the UserName from User and put on field UserName at Music table, как я могу сделать это?

Я думаю, что это просто сделать, но я не знаю, как взять UserName от пользователя и сохранить за другим столом, кто-нибудь может мне помочь?

ответ

0
string currentUserName = System.Web.HttpContext.Current.User.Identity.Name; 

Получить некоторую информацию о пользователе ...

MembershipUser user = Membership.GetUser(currentUserName...); 
// .... 

Необязательно ...

MembershipUser user = Membership.GetUser(); 
string userName = user.UserName; 
+0

Предполагая, что вы используете MembershipProvider для управления пользователями и аутентификации с помощью форм. Если вы используете объявление, используйте первый пример, затем пользовательский API для поиска информации о них из активного каталога с запросами LDAP. Если вы используете аутентификацию CLAIMS, используйте первый пример, а затем w/e, который вы использовали для предоставления пользователям аутентификации по требованиям. –

+0

Несомненно, я положу это на свой метод создания? В musicController –

+0

Привет @Ryios Я пытаюсь сделать то, что вы со мной разговариваете, но это не работает, это мой метод создания: http://pastebin.com/qtte3avx Я могу взять UserName, но когда db.saveChanges() называется следующей ошибкой: '' System.Data.SqlClient.SqlException: Невозможно вставить значение NULL в столбец «Nome», таблица «aspnet-TestTcc2-20140907134144.dbo.Musicas»; столбец не допускает нулей. INSERT не работает. Заявление было прекращено. «Не могли бы вы мне помочь? –

Смежные вопросы