私は完全な.Netコアアプリケーションをユーザーで作成し、実稼働環境に認証する方法を学ぶ方法として、いくつかの静的IPアドレスを管理する簡単なアプリを開発しています。.Netコアのコントローラで認証されたユーザーデータ
私は、Identity Framework CoreとEntity Framework Coreを含むVisual Studio 2015の.Net Core Webアプリケーションテンプレートを使い始めました。私は次のモデルを構築し、そこからCRUDページでコントローラを生成しました。そのすべてが素晴らしい作品です。
これまでのところ、私は組み込みコードを使用して問題なくログイン/登録/ログアウトなどを行うことができます。私はこのデータをユーザ固有のものにしたいので、ユーザAは自分のアドレスを取得し、ユーザBは自分のアドレスを取得します。これは、アイデンティティ・フレームワーク・テーブルへの何らかの外部キーを必要とするため、ユーザーまでIPアドレスを照合して表示することができます。私は.Net Coreでこれを処理する最善の方法は何だろうと思っていましたか?私は.Net Coreに固有の例を見つけることができませんでした。
モデル:コントローラの
public class IpAddress
{
[Key]
public int id { get; set; }
[Required]
[MaxLength(255)]
public string hostname { get; set; }
[MinLength(9)]
[MaxLength(21)]
public string ipv4 { get; set; }
[MaxLength(45)]
public string ipv6 { get; set; }
[Required]
public bool vm { get; set; }
[Required]
public bool container { get; set; }
[Required]
public bool docker { get; set; }
[Required]
public string operating_system { get; set; }
[Required]
public string description { get; set; }
}
最初の部分(インデックスと詳細ルート):
[Authorize]
public class IpAddressesController : Controller
{
private readonly IpAddressContext _context;
public IpAddressesController(IpAddressContext context)
{
_context = context;
}
// GET: IpAddresses
public async Task<IActionResult> Index()
{
return View(await _context.IpAddresses.ToListAsync());
}
// GET: IpAddresses/Details/5
public async Task<IActionResult> Details(int? id)
{
if (id == null)
{
return NotFound();
}
var ipAddress = await _context.IpAddresses.SingleOrDefaultAsync(m => m.id == id);
if (ipAddress == null)
{
return NotFound();
}
return View(ipAddress);
}
...
だから、私はそれがへの外部キーを追加するのと同じくらい簡単だろうと仮定し、言ったようにモデルを作成し、その外部キーに基づいたLinqクエリを使用してコントローラ内のデータを取得します。私はLinqにはあまりよくないので、それを助けてくれれば幸いです。それが助けになるならば、私は確かにより多くのコードを提供することができます。