質問編集履歴

2

「書き換え前のStartsUp」を「書き換えたStartup」に修正しました。

2021/07/06 08:42

投稿

Mk-ky
Mk-ky

スコア19

test CHANGED
File without changes
test CHANGED
@@ -120,7 +120,7 @@
120
120
 
121
121
  ```
122
122
 
123
- ### 書き換え前のStartsUp
123
+ ### 書き換えStartup
124
124
 
125
125
 
126
126
 

1

変更したstartup.csの内容について追記しました。 使用したテンプレートを追記しました。 ログインページの生成方法を追記しました。

2021/07/06 08:42

投稿

Mk-ky
Mk-ky

スコア19

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  .NET5を利用してログインページを作成しました。
6
6
 
7
- そこでログインページを一番最初に表示するためにstartup.csを書き換えたのですがそうするとエラーが表示されました。
7
+ そこでログインページを一番最初に表示するためにHomeControllerにアクションを作成し、startup.csを書き換えた(下記)のですがそうするとエラーが表示されました。
8
8
 
9
9
 
10
10
 
@@ -26,12 +26,282 @@
26
26
 
27
27
 
28
28
 
29
- ### 該当のソースコード
29
+ ### Controller
30
-
31
-
32
30
 
33
31
  ```C#
34
32
 
33
+ using Microsoft.AspNetCore.Mvc;
34
+
35
+ using Microsoft.Extensions.Logging;
36
+
37
+ using System;
38
+
39
+ using System.Collections.Generic;
40
+
41
+ using System.Diagnostics;
42
+
43
+ using System.Linq;
44
+
45
+ using System.Threading.Tasks;
46
+
47
+ using プロジェクト.Models;
48
+
49
+
50
+
51
+ namespace プロジェクト.Controllers
52
+
53
+ {
54
+
55
+ public class HomeController : Controller
56
+
57
+ {
58
+
59
+ private readonly ILogger<HomeController> _logger;
60
+
61
+
62
+
63
+ public HomeController(ILogger<HomeController> logger)
64
+
65
+ {
66
+
67
+ _logger = logger;
68
+
69
+ }
70
+
71
+
72
+
73
+ public IActionResult Index()
74
+
75
+ {
76
+
77
+ return View();
78
+
79
+ }
80
+
81
+
82
+
83
+ public IActionResult Privacy()
84
+
85
+ {
86
+
87
+ return View();
88
+
89
+ }
90
+
91
+
92
+
93
+     //ここから追加
94
+
95
+ public IActionResult Login()
96
+
97
+ {
98
+
99
+ return View("Areas/Identity/Pages/Account/Login.cshtml");
100
+
101
+ }
102
+
103
+     //ここまで
104
+
105
+
106
+
107
+ [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
108
+
109
+ public IActionResult Error()
110
+
111
+ {
112
+
113
+ return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
114
+
115
+ }
116
+
117
+ }
118
+
119
+ }
120
+
121
+ ```
122
+
123
+ ### 書き換え前のStartsUp
124
+
125
+
126
+
127
+ ```C#
128
+
129
+ using Microsoft.AspNetCore.Builder;
130
+
131
+ using Microsoft.AspNetCore.Hosting;
132
+
133
+ using Microsoft.AspNetCore.HttpsPolicy;
134
+
135
+ using Microsoft.AspNetCore.Identity;
136
+
137
+ using Microsoft.AspNetCore.Identity.UI;
138
+
139
+ using Microsoft.EntityFrameworkCore;
140
+
141
+ using Microsoft.Extensions.Configuration;
142
+
143
+ using Microsoft.Extensions.DependencyInjection;
144
+
145
+ using Microsoft.Extensions.Hosting;
146
+
147
+ using System;
148
+
149
+ using System.Collections.Generic;
150
+
151
+ using System.Linq;
152
+
153
+ using System.Threading.Tasks;
154
+
155
+ using プロジェクト.Data;
156
+
157
+
158
+
159
+ namespace プロジェクト
160
+
161
+ {
162
+
163
+ public class Startup
164
+
165
+ {
166
+
167
+ public Startup(IConfiguration configuration)
168
+
169
+ {
170
+
171
+ Configuration = configuration;
172
+
173
+ }
174
+
175
+
176
+
177
+ public IConfiguration Configuration { get; }
178
+
179
+
180
+
181
+ // This method gets called by the runtime. Use this method to add services to the container.
182
+
183
+ public void ConfigureServices(IServiceCollection services)
184
+
185
+ {
186
+
187
+ services.AddRazorPages();
188
+
189
+
190
+
191
+ services.AddDbContext<ApplicationDbContext>(options =>
192
+
193
+ options.UseSqlServer(
194
+
195
+ Configuration.GetConnectionString("DefaultConnection")));
196
+
197
+ services.AddDatabaseDeveloperPageExceptionFilter();
198
+
199
+
200
+
201
+ services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
202
+
203
+ .AddEntityFrameworkStores<ApplicationDbContext>();
204
+
205
+ services.AddControllersWithViews();
206
+
207
+ }
208
+
209
+
210
+
211
+ // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
212
+
213
+ public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
214
+
215
+ {
216
+
217
+ if (env.IsDevelopment())
218
+
219
+ {
220
+
221
+ app.UseDeveloperExceptionPage();
222
+
223
+ app.UseMigrationsEndPoint();
224
+
225
+ }
226
+
227
+ else
228
+
229
+ {
230
+
231
+ app.UseExceptionHandler("/Home/Error");
232
+
233
+ // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
234
+
235
+ app.UseHsts();
236
+
237
+ }
238
+
239
+ app.UseHttpsRedirection();
240
+
241
+ app.UseStaticFiles();
242
+
243
+
244
+
245
+ app.UseRouting();
246
+
247
+
248
+
249
+ app.UseAuthentication();
250
+
251
+ app.UseAuthorization();
252
+
253
+
254
+
255
+ app.UseEndpoints(endpoints =>
256
+
257
+ {
258
+
259
+ endpoints.MapRazorPages();
260
+
261
+ endpoints.MapControllerRoute(
262
+
263
+ name: "default",
264
+
265
+ pattern: "{controller=Home}/{action=Login}/{id?}"); //ここを書き換えた 
266
+
267
+ /*
268
+
269
+ 書き換え前は
270
+
271
+           pattern: "{controller=Home}/{action=Index}/{id?}");
272
+
273
+ */
274
+
275
+
276
+
277
+ });
278
+
279
+ }
280
+
281
+ }
282
+
283
+ }
284
+
285
+ ```
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+ ### Login.cshtml
300
+
301
+
302
+
303
+ ```Razor
304
+
35
305
  @page
36
306
 
37
307
 
@@ -42,7 +312,7 @@
42
312
 
43
313
  @{
44
314
 
45
- ViewData["Title"] = "ログイン"; @*ここにNullReferenceException: Object reference not set to an instance of an object.が表示されます*@
315
+ ViewData["Title"] = "ログイン"; //@*ここにNullReferenceException: Object reference not set to an instance of an object.が表示されます*@
46
316
 
47
317
  }
48
318
 
@@ -130,7 +400,7 @@
130
400
 
131
401
  ### 補足情報
132
402
 
133
-
403
+ VS2019のテンプレートはRazorの認証に「個別のアカウント」を使ってプロジェクトを生成し、Loginページをスキャフォールディング機能を使って作成しました。
134
404
 
135
405
 
136
406